Spring Boot 使用Apache 通用日志记录内部所有日志,SpringBoot的默认配置也提供了Java Util Logging,Log4gj2,和Logback的支持,我们也可以配置控制台日志记录以及文件日志记录。
如果你正在使用SpringBoot Starters,Logback将为日志记录提供很好的支持,除此之外,Logback也提供Common Logging,Util Logger,Log 4j以及SLF4J的良好支持。
Log Format
SpringBoot日志格式默认如下图:
控制台日志输出
默认的日志信息将会打印在控制台窗口,”INFO”,”ERROR”,”WARN”日志信息将会打印在日志文件中。
如果你想启动日志DEBUG级别,那么可以在启动应用的时候使用如下命令java -jar demo.jar --debug,你也可以在application.properties文件中添加如下信息:debug=true
文件日志输出
默认的,所有的日志将会打印在控制台而不是写入至文件中,入股哦你想打印日志到文件中,那么你需要在属性配置文件中添加logging.file或者logging.path。
你可以指定日志文件路径如下:
logging.path = /var/tmp/
你也可以指定日志文件名
logging.file = /var/tmp/mylog.log
Note: 文件在1-MB后将会回转
日志等级
SpringBoot 支持如下日志等级:”TRACE”,”DEBUG”,”INFO”,”WARN”,”ERROR”,”FATAL”,”OFF”.你可以在配置文件中设置root logger如下:loggin.level.root = WARN
配置Logback
Logback支持基于XML格式的文件来配置SpringBoot日志,日志配置详细信息在logback.xml中,并且logback.xml应该位于类路径下。
你可以配置ROOT level log如下:
1
2
3
4
5
<configuration>
<root level = "INFO">
</root>
</configuration>你可以配置控制台输出,如下:
1
2
3
4
5
6
7
<configuration>
<appender name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender"></appender>
<root level = "INFO">
<appender-ref ref = "STDOUT"/>
</root>
</configuration>你可以配置文件输出,如下:
1
2
3
4
5
6
7
8
9
<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>你可以配置日志输出格式,如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<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>
下面代码将展示如何添加slf4j logger到SpringBoot主文件中:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.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);
}
}
评论加载中