1. 配置日志输出格式
- 实现步骤:
- 在
log4j.properties
或 log4j.xml
文件中配置 PatternLayout
。以 log4j.properties
为例,添加如下配置:
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
- 上述配置中,`%r` 表示自应用启动到输出该日志信息所耗费的毫秒数,`%t` 是线程名,`%p` 为日志级别,`%c` 是日志输出者的全限定名,`%x` 是NDC(Nested Diagnostic Context,线程相关数据),`%m` 是日志信息,`%n` 是换行符。
- 关键类与方法:
PatternLayout
类:负责按照指定的模式格式化日志消息。ConversionPattern
是其关键属性,用于定义日志输出的格式模式。
2. 配置日志文件大小限制和滚动策略
- 实现步骤:
- 使用
RollingFileAppender
来实现日志文件的滚动。在 log4j.properties
中配置如下:
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=yourLogFile.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=10
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
- 这里 `MaxFileSize` 设置了单个日志文件的最大大小为10MB,`MaxBackupIndex` 表示最多保留10个备份日志文件。当当前日志文件大小达到 `MaxFileSize` 时,会进行滚动,生成新的日志文件。
- 关键类与方法:
RollingFileAppender
类:负责将日志输出到文件,并实现文件大小限制和滚动功能。setMaxFileSize(String size)
方法用于设置最大文件大小,setMaxBackupIndex(int num)
方法用于设置最大备份文件数量。
3. 整合到Java项目
- 实现步骤:
- 确保项目中包含
log4j
的依赖。如果使用Maven,在 pom.xml
中添加:
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.14.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.1</version>
</dependency>
- 在Java代码中获取日志记录器并使用。例如:
import org.apache.log4j.Logger;
public class MyClass {
private static final Logger logger = Logger.getLogger(MyClass.class);
public void doSomething() {
logger.info("This is an info log.");
}
}
- 关键类与方法:
Logger
类:通过 getLogger(Class clazz)
方法获取特定类的日志记录器实例,用于记录日志。info(String message)
、debug(String message)
、error(String message)
等方法用于按照不同级别记录日志信息。