第二节 SpringBoot使用日志
一、使用日志
SpringBoot中默认集成了Slf4j日志。
配置非常的简单。在application.yml中添加如下配置。
常见的对于日志的配置(1)配置日志输出位置file(2)配置日志输出格式pattern(3)配置日志输出等级level
logging:
#配置日志位置
file: /opt/logs/web-learn-springboot/web-learn-springboot.out
#配置日志输出格式(定位到哪行输出,方便排查)
pattern:
console: '%d{HH:mm:ss.SSS} %-5level %logger{36} [%line] - %msg%n'
#console: '%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}[%line] - %msg%n'
不同分支可以定义不同的日志输出等级。
在dev分支中定义日志输出等级。我们自己的包与Spring相关包,输出日志大于等于debug级别的日志。
logging:
level:
com.zhoutianyu.learnspringboot: debug
org.springframework.web: debug
在test分支中定义日志输出等级。我们自己的包与Spring相关包,输出日志大于等于info级别的日志。
logging:
level:
com.zhoutianyu.learnspringboot: info
org.springframework.web: info
在pro分支中定义日志输出等级。我们自己的包与Spring相关包,输出error级别的日志。
logging:
level:
com.zhoutianyu.learnspringboot: error
org.springframework.web: error
二、测试
编写一个Contoller类来验证日志等级。
package com.zhoutianyu.learnspringboot.log;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
private static final Logger LOGGER = LoggerFactory.getLogger(HelloController.class);
@GetMapping(value = "/log/test")
public String function(String paramType) {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("debug级别日志");
}
LOGGER.info("info级别日志");
LOGGER.error("error级别日志");
return paramType;
}
}
(1)首先在application.yml中切换成dev分支,访问并启动项目。访问开发分支的8081端口。
浏览器访问:http://localhost:8081/study/springboot/log/test?paramType=abc
控制台输出
(2)切换成test分支,并重新启动项目。访问测试分支的8082端口。
浏览器访问:http://localhost:8082/study/springboot/log/test?paramType=abc控制台输出
(3)切换成pro分支,并重新启动项目。访问测试分支的8083端口。
浏览器访问:http://localhost:8083/study/springboot/log/test?paramType=abc控制台输出
再通过上面的图片,回头看日志输出格式。
console: '%d{HH:mm:ss.SSS} %-5level %logger{36} [%line] - %msg%n'
%d表示时间输出格式。 level表示输出等级。
line表示哪行代码输出的日志。详细配置如下。
logging:
pattern:
console: '%d{HH:mm:ss.SSS} %-5level %logger{36} [%line] - %msg%n'
三、源码下载
本章节项目源码:点我下载源代码