spring boot 统一日志处理
土豆 2023/6/6 java
# 1.添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
# 2.配置日志
在resources目录新建logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="CONSOLE_LOG_PATTERN"
value="%yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level) |%blue(%thread) |%blue(%file:%line) |%green(%logger) |%cyan(%msg%n)"/>
<!--输出到控制台-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!--此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息-->
<!-- 例如:如果此处配置了INFO级别,则后面其他位置即使配置了DEBUG级别的日志,也不会被输出 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<encoder>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
<!-- 设置字符集 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="CONSOLE" />
</root>
</configuration>
# 3.使用
@RestController
@Slf4j
public class Controller {
@Autowired
StockService stockService;
@RequestMapping("/demoGetStock/{id}")
public String demoGetStock(@PathVariable int id){
if(id>100){
log.error("demoGetStock param error");
return "error";
}
log.warn("demo warn.");
log.debug("demoGetStock,id is: " + id );
return stockService.demoGetStock(id) ;
}
@RequestMapping("/demoInsertStock")
public String demoInsertStock(){
log.debug("demoInsertStock");
return stockService.demoInsertStock();
}
}