springboot4.1.1的log4j2配置

时间:2021-11-22 21:51:51

一、默认情况下,Spring Boot会用Logback来记录日志,并用INFO级别输出到控制台;

日志输出内容元素具体如下:

  • 时间日期:精确到毫秒
  • 日志级别:ERROR, WARN, INFO, DEBUG or TRACE
  • 进程ID
  • 分隔符:— 标识实际日志的开始
  • 线程名:方括号括起来(可能会截断控制台输出)
  • Logger名:通常使用源代码的类名
  • 日志内容

spring-boot-starter 其中包含了 spring-boot-starter-logging ,该依赖内容就是 Spring Boot 默认的日志框架 logback,

所以实际开发中我们不需要直接添加该依赖。

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-logging</artifactId>

</dependency>

二、日志级别

日志级别从低到高分为:

TRACE < DEBUG < INFO < WARN < ERROR < FATAL 。

如果设置为 WARN ,则低于 WARN 的信息都不会输出。

Spring Boot 中默认配置 ERROR 、 WARN 和 INFO 级别的日志输出到控制台。

三、使用log4j2

步骤1:

添加依赖:

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

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
步骤2:

配置log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<appenders>
<Console name="Console" target="SYSTEM_OUT">
<!-- 设置日志输出的格式 -->
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
</Console>
<RollingFile name="RollingFileInfo" fileName="D:/info.log"
filePattern="D:/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="INFO"/>
</Filters>
<PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
<Policies>
<TimeBasedTriggeringPolicy/>
<SizeBasedTriggeringPolicy size="100 MB"/>
</Policies>
</RollingFile>
</appenders>

<loggers>
<root level="all">
<appender-ref ref="Console"/>
<appender-ref ref="RollingFileInfo"/>
</root>
</loggers>

</Configuration>
步骤3:

application.properties

log4j配置
logging.config=classpath:log4j2.xml

 

最后测试:

@RestController
public class DabController {

private static final Logger logger = LoggerFactory.getLogger(DabController.class);

@RequestMapping("/dab")
private String dab(){
System.out.println("dab01");
logger.info("dab01===========logger");
return "dab!";
}

}


-------------------
参考:https://blog.csdn.net/yebichao/article/details/84948723

           https://www.cnblogs.com/bjlhx/p/9963964.html