springboot4.1.1的log4j2配置
一、預設情況下,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