Spring Boot使用Apache Commons紀錄檔記錄進行所有內部紀錄檔記錄。Spring Boot的預設組態支援使用Java Util Logging,Log4j2和Logback。 使用這些,可以組態控制台紀錄檔記錄以及檔案紀錄檔記錄。
如果使用的是Spring Boot Starters,Logback將為紀錄檔記錄提供良好的支援。 此外,Logback還提供對Common Logging,Util Logging,Log4J和SLF4J的良好支援。
預設的Spring Boot Log格式顯示在下面給出的螢幕截圖中。
它提供以下資訊 -
---
是一個分隔符。[]
中。預設紀錄檔訊息將列印到控制台視窗。 預設情況下,INFO
,ERROR
和WARN
紀錄檔訊息將列印在紀錄檔檔案中。
如果必須啟用偵錯級別紀錄檔,請使用以下命令在啟動應用程式時新增偵錯標誌 -
java –jar demo.jar --debug
還可以將偵錯模式新增到application.properties 檔案中,如下所示 -
debug = true
預設情況下,所有紀錄檔都將在控制台視窗中列印,而不是在檔案中列印。 如果要在檔案中列印紀錄檔,則需要在application.properties 檔案中設定屬性logging.file 或logging.path 。
可以使用下面顯示的屬性指定紀錄檔檔案路徑。 請注意,紀錄檔檔案名是spring.log。
logging.path = /var/tmp/
使用下面顯示的屬性指定自己的紀錄檔檔案名 -
logging.file = /var/tmp/mylog.log
注意 - 檔案將在達到
10MB
後自動旋轉生成。
Spring Boot支援所有記錄器級別,例如:TRACE
,DEBUG
,INFO
,WARN
,ERROR
,FATAL
,OFF
。在application.properties 檔案中定義Root logger,如下所示 -
logging.level.root = WARN
註 - Logback不支援「FATAL」級別紀錄檔。 它對映到「ERROR」級別紀錄檔。
Logback支援基於XML的組態來處理Spring Boot Log組態。紀錄檔組態詳細資訊在logback.xml
檔案中組態。logback.xml
檔案應放在classpath
下。
可以使用下面給出的程式碼在Logback.xml
檔案中組態ROOT
級別紀錄檔 -
<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
<root level = "INFO">
</root>
</configuration>
在下面給出的Logback.xml
檔案中組態控制台appender
。
<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
<appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender"></appender>
<root level = "INFO">
<appender-ref ref = "STDOUT"/>
</root>
</configuration>
使用下面給出的程式碼在Logback.xml
檔案中組態檔案appender
。 請注意,需要在檔案追加器中指定紀錄檔檔案路徑。
<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
<appender name = "FILE" class = "ch.qos.logback.core.FileAppender">
<File>/var/tmp/mylog.log</File>
</appender>
<root level = "INFO">
<appender-ref ref = "FILE"/>
</root>
</configuration>
使用下面給出的程式碼在logback.xml
檔案中定義紀錄檔模式。還使用下面給出的程式碼在控制台或檔案紀錄檔附加程式中定義支援的紀錄檔模式集 -
<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
完整的logback.xml檔案的程式碼如下所示。必須將其放在類路徑中。
<?xml version = "1.0" encoding = "UTF-8"?>
<configuration>
<appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
</encoder>
</appender>
<appender name = "FILE" class = "ch.qos.logback.core.FileAppender">
<File>/var/tmp/mylog.log</File>
<encoder>
<pattern>[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
</encoder>
</appender>
<root level = "INFO">
<appender-ref ref = "FILE"/>
<appender-ref ref = "STDOUT"/>
</root>
</configuration>
下面給出的程式碼顯示了如何在Spring Boot主類檔案中新增slf4j logger。
package com.yiibai.demo;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class DemoApplication {
private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class);
public static void main(String[] args) {
logger.info("this is a info message");
logger.warn("this is a warn message");
logger.error("this is a error message");
SpringApplication.run(DemoApplication.class, args);
}
}
在控制台視窗中看到的輸出顯示在此處 -
在此處顯示紀錄檔檔案中顯示的輸出 -