使用@Slf4j和logback-spring.xml搭建日志框架

摘自:使用@Slf4j和logback-spring.xml搭建日志框架

前言

对于一名Java后端开发工程师,查询日志是经常做的事情。因此,如果能构建一个合适的日志[框架],就能让我们在查看日志排查错误的时候,能够很快地找出问题所在。

配置logback.xml,可以让idea的控制台输出我们想要的信息,比如时间、线程、端口、pid等等,还能配置不同信息不同颜色输出在控制台上,方便我们查看日志。

1、在yml配置文件中输入文件输出路径
此配置是logback.xml读取yml配置文件中的路径,使得文件能够输出到我们想要的地方。在配置文件中配置是因为如果你使用Apollo这种可以热发布的配置中心,可以动态修改。如果你输出的地址不变,可以直接写在logback.xml中。

log:
  path: ./logs/test-module/test-module-${server.port}

./表示当前模块的路径

${server.port}表示yml配置的模块端口

2、引入依赖
我一般使用的是@SLf4j作为日志输出。

使用logback.xml,需要引入下面两个依赖。如果你使用的是springboot,那么springboot的starter会自带这两个依赖,不用再重复导入。


    ch.qos.logback
    logback-classic
    1.2.11
    test



    ch.qos.logback
    logback-core
    1.2.11

3、在模块的resource目录下创建logback.xml
此份logback.xml,配置了控制台的输出日志,写入文件的日志以及写入错误日志的配置。




    
    
    
    
    
    

    
    

    
    
        
            ${CONSOLE_LOG_PATTERN}
            utf8
        
    

    
    
        
            
            ${logPath}/%d{yyyy-MM-dd}/logs-%d{yyyy-MM-dd}-%i.log
            
            20MB
            
            2GB
            true
            
            
            
            30
        
        
            
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%level] [%thread] [%c] %L - %msg%n
            utf8
        
    

    
    
        
            ERROR
            ACCEPT
            DENY
        
        
        
            ${logPath}/%d{yyyy-MM-dd}/errors-%d{yyyy-MM-dd}-%i.log
            5MB
            
            1GB
            true
            
            
            
            30
        
        
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%level] [%thread] [%c] %L - %msg%n
            utf8
        
    

        
    
    
    
        
        
        
    

注意:
1、文件名需要为logback-spring.xml,如果是logback.xml的话,springboot会因为识别问题,会自动创建一个logPath_IS_UNDEFINED的文件夹。
2、如果想在启动类中加上日志,注意需要加在run方法的后面,否则虽然会在控制台输出,但不会写入到日志文件中。

public class PersonalCreditApplication {
    public static void main(String[] args) {
        SpringApplication.run(PersonalCreditApplication.class, args);
        log.info("项目启动");
    }

至此,一个项目或模块的日志框架就搭建成功。

你可能感兴趣的:(使用@Slf4j和logback-spring.xml搭建日志框架)