日志
控制台日志输出
默认日志消息将打印到控制台窗口。 默认情况下,INFO
,ERROR
和WARN
日志消息将打印在日志文件中。
如果必须启用调试级别日志,可以将调试模式添加到application.properties 文件中,如下所示 -
debug = true
文件日志输出
默认情况下,所有日志都将在控制台窗口中打印,而不是在文件中打印。 如果要在文件中打印日志,则需要在application.properties 文件中设置属性logging.file 或logging.path 。
可以使用下面显示的属性指定日志文件路径。 请注意,日志文件名是spring.log。 //更多请阅读:https://www.yiibai.com/spring-boot/spring_boot_logging.html
logging.file.path=/var/tmp/
使用下面显示的属性指定自己的日志文件名 -
logging.file.name = /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
Logback支持基于XML的配置来处理Spring Boot Log配置。日志配置详细信息在logback.xml
文件中配置。logback.xml
文件应放在classpath
下。
<?xml version = "1.0" encoding = "UTF-8" ?>
<configuration>
<!-- 设置输出日志级别 -->
<root level = "INFO">
<!-- 文件输出 -->
<appender-ref ref = "FILE"/>
<!-- 控制台输出-->
<appender-ref ref = "STDOUT"/>
</root>
<!-- 设置控制台输出的格式-->
<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>
</configuration>
下面给出的代码显示了如何在Spring Boot主类文件中添加slf4j logger。
package com.wzy.demosboot;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class DemoSbootApplication extends SpringBootServletInitializer {
//实例化日志对象
private static final Logger logger = LoggerFactory.getLogger(DemoSbootApplication.class);
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DemoSbootApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(DemoSbootApplication.class, args);
}
@RequestMapping(value = "/")
public String hello() {
//打印INFO级别的日志
logger.info("this is a info message");
return "Hello World";
}
}
配置完成后就可以使用了