返回

日益稳健和完美的SpringBoot整合log4j2

后端

以前,在一个项目中做了优化,将原有的日志配置logBack改为log4j2。查阅了网上各种资料和官方文档,遇到了很多问题,最终完成了迁移,特此记录一下。

1. 引入log4j2依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

2. 配置log4j2.properties文件

# 日志输出级别
log4j.rootLogger.level=info

# 日志输出格式
log4j.appender.console.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1} - %msg%n

# 将日志输出到控制台
log4j.appender.console=org.apache.logging.log4j.core.appender.ConsoleAppender
log4j.appender.console.layout=org.apache.logging.log4j.core.layout.PatternLayout

3. 在SpringBoot应用中使用log4j2

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class App {
    private static final Logger logger = LoggerFactory.getLogger(App.class);

    public static void main(String[] args) {
        logger.info("Hello World!");
    }
}

4. log4j2的配置

log4j2的配置文件名为log4j2.properties,它位于项目的resources目录下。log4j2.properties文件的内容如下:

# 日志输出级别
log4j.rootLogger.level=info

# 日志输出格式
log4j.appender.console.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1} - %msg%n

# 将日志输出到控制台
log4j.appender.console=org.apache.logging.log4j.core.appender.ConsoleAppender
log4j.appender.console.layout=org.apache.logging.log4j.core.layout.PatternLayout

# 将日志输出到文件
log4j.appender.file=org.apache.logging.log4j.core.appender.FileAppender
log4j.appender.file.fileName=logs/app.log
log4j.appender.file.layout=org.apache.logging.log4j.core.layout.PatternLayout
log4j.appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} %c{1} - %msg%n

5. log4j2的使用说明

log4j2的使用非常简单,只需要在需要记录日志的地方添加如下代码即可:

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class App {
    private static final Logger logger = LoggerFactory.getLogger(App.class);

    public static void main(String[] args) {
        logger.info("Hello World!");
    }
}

6. 使用log4j2的最佳实践

  1. 使用日志级别来控制日志输出的粒度。
  2. 使用日志格式化器来控制日志输出的格式。
  3. 使用日志追加器来控制日志输出的目的地。
  4. 使用日志记录器来记录日志。