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();
    }

}