springboot中logback日誌常用配置,包含日誌切割
阿新 • • 發佈:2019-01-08
新增依賴:
<!--監控-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
actuator是用來做監控的,包含了logbak依賴:
具體配置如下:
- 在
bootstrap.yml
檔案中配置:
spring: application: name: yourAppName
- 在同一目錄下新建一個
logback-spring.xml
檔案:
<?xml version="1.0" encoding="UTF-8"?> <configuration debug="false" scan="false"> <springProperty scop="context" name="spring.application.name" source="spring.application.name" defaultValue="pig"/> <property name="log.path" value="logs/${spring.application.name}" /> <!-- Console log output --> <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{MM-dd HH:mm:ss.SSS} %-5level [%logger{50}] - %msg%n</pattern> </encoder> </appender> <!-- Log file debug output --> <appender name="debug" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/debug.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${log.path}/%d{yyyy-MM}/debug.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> <maxFileSize>50MB</maxFileSize> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern> </encoder> </appender> <!-- Log file error output --> <appender name="error" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${log.path}/error.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <fileNamePattern>${log.path}/%d{yyyy-MM}/error.%d{yyyy-MM-dd}.%i.log.gz</fileNamePattern> <maxFileSize>50MB</maxFileSize> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n</pattern> </encoder> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>ERROR</level> </filter> </appender> <!-- Level: FATAL 0 ERROR 3 WARN 4 INFO 6 DEBUG 7 --> <root level="INFO"> <appender-ref ref="console" /> <appender-ref ref="debug" /> <appender-ref ref="error" /> </root> </configuration>
配置程式碼分別是三個級別的日誌輸出,即控制檯輸出、debug檔案全日誌輸出和error錯誤檔案日誌輸出,其中debug和error日誌輸出做了日誌滾動策略,也就是我們通常所說的日誌切割,每天產生一個日誌檔案,日誌檔案最大50MB,最長保留30天日誌。
- root:上面配置表示日誌級別>=info的,參與上面的日誌輸出。level用來設定列印級別,大小寫無關:TRACE, DEBUG, INFO, WARN, ERROR, ALL和OFF,不能設定為INHERITED或者同義詞NULL。 預設是DEBUG。
- rollingPolicy:設定了日誌滾動策略,其中fileNamePattern設定了命名規範,maxFileSize表示日誌檔案最大為多少,maxHistory表示設定檔案最大儲存時間。
- encoder:日誌輸出格式。
- file:表示輸出的日誌檔名稱。
- filter :過濾輸出日誌級別