【JavaEE】LogBack配置文件解析

作者:邹峰立,微博:zrunker,邮箱:[email protected],微信公众号:书客创作,个人平台:www.ibooker.cc。

本文选自书客创作平台第4篇文章。阅读原文 。

【JavaEE】LogBack配置文件解析_第1张图片
书客创作

Logback是由log4j创始人设计的又一个开源日志组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个 改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日志系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日志的功能。

那么该如何正确的使用LogBack这个开源组件呢?
首先要引入相关jar,这里通过maven进行引入:



    org.slf4j
    slf4j-api
    1.7.22


    ch.qos.logback
    logback-core
    1.1.1



    ch.qos.logback
    logback-classic
    1.1.1

Logback在项目中相当于一种规范,而slf4j相当于接口。

相关jar包已经引入,那么LogBack到底该如何配置呢?LogBack打印日志信息可以分为多个等级,等级从高到地低:OFF 、 FATAL 、 ERROR 、 WARN 、 INFO 、 DEBUG 、 TRACE 、 ALL。在实际的开发当中,配置日志属性文件,主要是为了将项目运行时遇到的一些问题或者BUG进行输出,方便对项目进行维护。那么如何设置日志输出位置呢?

一、输出日志到控制台

在logback的核心包中提供ConsoleAppender类用来设置控制台输出。

  
  
      
          
          
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n  
        
    
  
      
    
          
      
      
      
      
          
      

在上面配置pattern模式当中有几个属性格式说明和补充:

%d时间 %thread 线程名 %level行为级别 %logger logger名称 %method 方法名称 %message 调用方法的入参消息。

二、输出日志到文件

在logback的核心包中提供FileAppender类用来设置文件输出。

  

      
        /logs/ibooker.log  
          
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n  
          
        true  
        false  
      

      
          
    

注意:

1、 prudent:如果设置为true,不同JVM的file appenders能够安全地将日志输出到同一个文件中。
2、当prudent为true时,如果append设置为false,会被强行转成true。

三、滚动输出记录文件

实际生产中,每天都有大量的日志生成,单个文件(FileAppender)已经不能满足要求,RollingFileAppender继承了FileAppender,并提供了更多的功能:

  • 每天生成一个日志文件。

  • 将前一天的日志重命名为包含日期的格式。

  • 根据需要,删除过期历史日志。

  
    /logs/ibooker.log  
      
        /logs/ibooker-%d{yyyy-MM-dd}.log  
        30  
      
      
        %d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n  
      
    false  
    false  
  
  
  
      
  

四、输出日志到不同文件

为了方便查看和归档:

  • 不同包的日志可能要放到不同的文件中,如service层和dao层的日志;

  • 不同日志级别:调试、信息、警告和错误等也要分文件输出。


    /logs/ibookerservice.log  
      
        /logs/ibookerservice-%d{yyyy-MM-dd}.log  
      
      
        %d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n  
      
  
  
  
    /logs/ibookerdao.log  
      
        /logs/ibookerdao-%d{yyyy-MM-dd}.log  
      
      
        %d{HH:mm:ss.SSS} [%thread] %-5level %logger{5} - %msg%n  
      
  
  
  
      
  
  
  
      
 

最后给出一个常用的logback.xml仅供参考:









    
    
    
    



    
    
        
        
            %d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger - %msg%n
        
    


    
    
    
        
        
            ERROR
            ACCEPT
            DENY
        
        
        
            
            ${logDir}/%d{yyyy-MM-dd}/error-log.log
            
            ${maxHistory}
        

        
        

        
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
        
    



    
    
        
        
            WARN
            ACCEPT
            DENY
        
        
            
            ${logDir}/%d{yyyy-MM-dd}/warn-log.log
            
            ${maxHistory}
        
        
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
        
    



    
    
        
        
            INFO
            ACCEPT
            DENY
        
        
            
            ${logDir}/%d{yyyy-MM-dd}/info-log.log
            
            ${maxHistory}
        
        
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
        
    



    
    
        
        
            DEBUG
            ACCEPT
            DENY
        
        
            
            ${logDir}/%d{yyyy-MM-dd}/debug-log.log
            
            ${maxHistory}
        
        
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
        
    



    
    
        
        
            TRACE
            ACCEPT
            DENY
        
        
            
            ${logDir}/%d{yyyy-MM-dd}/trace-log.log
            
            ${maxHistory}
        
        
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
        
    

    
    
    
    
    
    
    



    
    
        
        
        
        
        
        
        
        
    

在使用的时候只需要将该配置文件导入工程的根目录即可。

阅读原文


【JavaEE】LogBack配置文件解析_第2张图片
微信公众号:书客创作

你可能感兴趣的:(【JavaEE】LogBack配置文件解析)