SpringBoot使用Logback做爲默認的日誌框架。logback 是log4j框架的做者開發的新一代日誌框架,它效率更高、可以適應諸多的運行環境,同時自然支持SLF4J。spring-boot-starter 其中包含了 spring-boot-starter-logging,該依賴內容就是 Spring Boot 默認的日誌框架 logback。web
默認logback日誌打印效果圖spring
從上圖能夠看到,日誌輸出內容元素以下app
---
標識實際日誌的開始<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 控制檯輸出 start -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 控制檯輸出 end -->
<!-- 文件日誌輸出 start -->
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>D://logs/demo_info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>D://logs/demo_info.%d{yyyy-MM-dd}-%i.log</fileNamePattern>
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<MaxFileSize>50MB</MaxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<!-- 文件日誌輸出 end -->
<!-- 異常日誌輸出 start -->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>D://logs/demo_error.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>D://logs/demo_error.%d{yyyy-MM-dd}-%i.log</fileNamePattern>
<maxHistory>30</maxHistory>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<MaxFileSize>50MB</MaxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} #### %msg%n</pattern>
</encoder>
</appender>
<!-- 異常日誌輸出 end -->
<!--打印info級別的日誌,注意,additivity必須是false-->
<logger name="monitorLog" level="info" additivity="false">
<appender-ref ref="INFO" />
</logger>
<!--打印異常錯誤日誌,注意,additivity必須是false-->
<logger name="errorLog" level="error" additivity="false">
<appender-ref ref="ERROR" />
</logger>
<!--還能夠根據業務須要配置其餘的logger-->
<!--實際項目中咱們一般將不一樣的日誌打印到不一樣的日誌文件中-->
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
默認狀況下,Spring Boot 配置 ERROR, WARN, INFO 三種日誌級別。若是須要 Debug 級別的日誌。在 src/main/resources/application.properties 中配置數據源信息。框架
debug=true
此外,配置 logging.level.* 來具體輸出哪些包的日誌級別。spring-boot
logging.level.root=INFO logging.level.org.springframework.web=DEBUG
默認狀況下, Spring Boot 日誌只會輸出到控制檯,並不會寫入到日誌文件,所以,對於正式環境的應用,咱們須要經過在 application.properites 文件中配置 logging.file 文件名稱和 logging.path 文件路徑,將日誌輸出到日誌文件中。spa
logging.path = /var/tmp logging.file = xxx.log logging.level.root = info
若是隻配置 logging.path,在 /var/tmp文件夾生成一個日誌文件爲 spring.log。若是隻配置 logging.file,會在項目的當前路徑下生成一個 xxx.log 日誌文件。線程
值得注意的是,日誌文件會在 10MB 大小的時候被截斷,產生新的日誌文件 debug
若是,咱們但願使用 log4j 或者 log4j2,咱們能夠採用相似的方式將它們對應的依賴模塊加到 Maven 依賴中。日誌
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
或者code
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
log4j 依賴模塊加到 Maven 依賴中後,在 src/main/resources 目錄下加入 log4j-spring.properties 配置文件。Spring Boot 官方推薦優先使用帶有 –spring 的文件名做爲你的日誌配置, 例如 log4j-spring.properties,固然使用 log4j.properties 也是支持的。