1、默認實現的日志配置
Spring boot默認已經集成了logging,同時也是默認開啟的,如果想根據自己的需求對日志進行配置,方法很簡單——只需要在配置文件中進行相應設置,這里提供我自己的配置如下(配置文件采用了yml):
logging:
#指定日志的等級,可以對不同包采用不同的等級,比如如下配置就是將root的等級設置為info,將com.example設置為debug
level: {root: info,com.example: debug}
#file是設置日志的輸出的路徑,這里需要注意的是file和path屬性只能選一個,不能同時存在
file: log.log
- 更多配置文件請參考Spring boot的官方文檔,說明很詳細
2、自定義日志配置
- 使用默認的日志在實際開發中會存在很多問題,比如備份文件名稱無法自動重命名、各個等級的日志被放在一個文件中等,所以實際開發中為了更好滿足我們的需求,我們一般都會自定義采用配置的方式,日志自定配置步驟如下
2.1 修改spring-boot-starter的dependency
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
添加我們需要自定義的logging的dependency,這里用的是log4j2
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
修改之后我們就算移除了默認的日志配置,下面就可以自定義配置了
2.2 自定義配置文件log4j2.xml
- Spring boot對自定義配置文件的名稱是有要求的,對Login4j2而言必須為log4j2-spring.xml or log4j2.xml
- 關於配置文件中的參數,詳細參考官方文檔
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appenders>
<!-- 控制台輸出 -->
<console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class %L %M - %msg%n"/>
</console>
<!-- fileName:輸出路徑 filePattern:命名規則 -->
<RollingFile name="all" fileName="logs/allOut.log"
filePattern="logs/$${date:yyyy-MM-dd}/allOut-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="all" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<!-- 輸出格式 -->
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%n"/>
<Policies>
<!-- SizeBasedTriggeringPolicy單個文件的大小限制 -->
<SizeBasedTriggeringPolicy size="2 MB"/>
</Policies>
<!-- DefaultRolloverStrategy同一個文件下的最大文件數 -->
<DefaultRolloverStrategy max="50"/>
</RollingFile>
<RollingFile name="err" fileName="logs/err.log"
filePattern="logs/$${date:yyyy-MM-dd}/err-%d{yyyy-MM-dd}-%i.log">
<Filters>
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
<!-- 輸出格式 -->
<PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
<Policies>
<!-- SizeBasedTriggeringPolicy單個文件的大小限制 -->
<SizeBasedTriggeringPolicy size="10MB"/>
</Policies>
<!-- DefaultRolloverStrategy同一個文件下的最大文件數 -->
<DefaultRolloverStrategy max="50"/>
</RollingFile>
</appenders>
<loggers>
<!--過濾掉spring無用的debug信息-->
<logger name="org.springframework" level="error"></logger>
<root level="debug">
<appender-ref ref="Console"/>
<appender-ref ref="all"/>
<appender-ref ref="err"/>
</root>
</loggers>
</configuration>