使用logback配置日志打印策略

        

目录

logback-spring.xml配置详解

1、父标签configuration

2、两种属性标签

3、三个节点标签

3.1、append节点标签

3.2、root节点标签

3.3、logger节点标签

3.4、logger和root的关系

4、完整日志配置


        logback在springboot中有内置的存在,当然也可以再重新引用依赖,但是没必要。logback框架可以控制日志日志的打印级别、打印内容、还可以实现error级别日志报警,将其发送到指定邮箱或者钉钉。

logback-spring.xml配置详解

        在logback-spring.xml配置文件中,按标签的级别来分,有一个父标签,两种属性标签和和三种节点标签。分别是

 一个父标签:configuration
  两种属性:contextName和property
  三个节点:appender、root、logger

springboot配置文件的加载顺序logback.xml->application.yml->logback-spring.xml

1、父标签configuration

configuration最外层标签,该标签有三个属性:

  • scan
    当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true
  • scanPeriod
    设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。
  • debug
    当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。

2、两种属性标签

        contextName和property是处于第二层的标签。

contextName

        标签用于指定日志上下文的名称。日志上下文是Logback框架中的一个重要概念,它表示一个独立的日志实例或日志环境。通过设置不同的上下文名称,您可以创建并配置多个独立的日志记录器,每个日志记录器可以有自己的日志级别、输出目标等配置。



logback_demo

property

        用来定义变量值的标签, 有两个属性,name和value;其中name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${}”来使用变量。

3、三个节点标签

        三个节点标签分别是append、logger、root

3.1、append节点标签

        这个标签属于核心标签,用于定义日志的输出目标。它指定了日志消息将发送到哪里,例如控制台、文件、数据库等。

标签属性:

  • name:指定appender的名称,应该是唯一的。
  • class:指定appender的实现类。例如,ch.qos.logback.core.ConsoleAppender表示控制台输出,ch.qos.logback.core.FileAppender表示文件输出。
  • 其他属性:具体取决于所选的appender类,例如文件路径、文件滚动策略等。

控制台输出时子标签:

  • :标签用于配置日志事件过滤器,可以根据特定的条件过滤和控制日志输出。
  • :ancoder的意思是追加器,在这里可以理解为渲染器,用来指定日志输出的格式。
  • :日志记录器的滚动策略,按日期,按大小记录,只有在输出到文本中时才需要配置这个。

控制台打印示例:












    
    
        debug
    
    
        
        ${CONSOLE_LOG_PATTERN}
        
        UTF-8
    

输出到文本时示例:




    
    ${log.path}/web_debug.log
    
    
        %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
        UTF-8 
    
    
    
        
        
        
        ${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log
        
            
            100MB
        
        
        15
        
        20GB
    
    
    
        
        debug
        ACCEPT
        DENY
    

3.2、root节点标签

该标签的作用就是指定都启用那个append,可以指定多个


 
 
 

 

   
   
   
   
   

3.3、logger节点标签

        logger与root是相对的,作用范围不同,root相当于是对真个项目做配置,logger就是对项目下某个包或者某个类单独做配置的,

该标签有两个属性

name:用来指定受此loger约束的某一个包或者具体的某一个类。

addtivity:是否向上级loger传递打印信息。默认是true。

 
 
  
   
 
 
 
   

3.4、logger和root的关系

  • root和logger是父子的关系。

logger的appender根据参数additivity决定是否要叠加root的appender,logger的级别是其自身定义的级别,和root的级别没什么关系。

  • logger对单个包或类添加配置,相当于局部配置,root相当于全局配置

如果logger里面配置了additivity=“false”,就会覆盖root的,只打印一遍;但是additivity=“true”,就会向上层再次传递,不会覆盖,而是打印两遍!

4、完整日志配置

将error日志打印到一个文件中,将其他日志打印到另一个文件夹中







    
    util_demo
    
    
    
    
    
    
    
    
    
    
    
    
    
        
        
            debug
        
        
            
            ${CONSOLE_LOG_PATTERN}
            
            UTF-8
        
    
    
    
    
        

        
        
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
            UTF-8 
        
        
        
            ${log.path}/${springAppName}-error-%d{yyyy-MM-dd}.log
            
            15
        
        
        
            ERROR
            ACCEPT
            DENY
        
    
    
    
        

        
        
            %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n
            UTF-8 
        
        
        
            
            ${log.path}/${springAppName}-info-%d{yyyy-MM-dd}.log
            30
        
        
        
            ERROR
            DENY
            ACCEPT
        
    
    
    
        
        0
        
        256
        
        
    
    
        
        0
        
        256
        
        
    


    
    
        
        
        
    

更详细的介绍参看这两篇博客,我也是看的这两个

logback-spring.xml配置文件标签(超详解) - 掘金 (juejin.cn)

logback整合Springboot及logback-spring.xml配置说明_logback-spring和logback同时存在_shanvlang的博客-CSDN博客

你可能感兴趣的:(笔记,logback,spring,log4j)