logback配置文件---logback.xml详解

一、添加maven依赖

        
            org.slf4j
            slf4j-api
            1.7.25
        
        
            ch.qos.logback
            logback-core
            1.1.11
        
        
            ch.qos.logback
            logback-classic
            1.1.11
        

二、logback.xml常用配置详解

常用节点结构图:

logback配置文件---logback.xml详解_第1张图片

1、根节点,包含下面三个属性:

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

示例:

 
     
 

2、子节点:负责写日志的组件,它有两个必要属性name和class。name指定appender名称,class指定appender的全限定名。

    
    
        
            ${LOG_PATTERN}
        
    

3、子节点:用来设置某一个包或具体的某一个类的日志打印级别、以及指定

仅有一个name属性,一个可选的level和一个可选的addtivity属性。

可以包含零个或多个元素,标识这个appender将会添加到这个logger。
    name: 用来指定受此loger约束的某一个包或者具体的某一个类。
    level: 用来设置打印级别,大小写无关:TRACE, DEBUG, INFO, WARN, ERROR, ALL和OFF,还有一个特殊值INHERITED或者同义词NULL,代表强制执行上级的级别。 如果未设置此属性,那么当前loger将会继承上级的级别。
    addtivity: 是否向上级logger传递打印信息。默认是true。可以包含零个或多个元素,标识这个appender将会添加到这个logger。

4、子节点 :用来定义变量值,它有两个属性name和value,通过定义的值会被插入到logger上下文中,可以使“${}”来使用变量。 

   

三、日志级别Level

日志记录器(Logger)的行为是分等级的: 分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。
Log4j建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG,优先级高的将被打印出来。(logback通用)
通过定义级别,可以作为应用程序中相应级别的日志信息的开关。
比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。(设置INFO级别,即:>=INFO 生效)
项目上生产环境的时候一定得把debug的日志级别重新调为warn或者更高,避免产生大量日志。

 四、配置logback.xml



    
    
    
    
    

    
    
        
            ${LOG_PATTERN}
        
    
    
    
        ${LOG_HOME}
        
            
            ${LOG_HOME}.%d{yyyy-MM-dd}.%i
            30
            50MB
        
        
            ${LOG_PATTERN}
        
    

    
    
        
    
    
    
        
    

    
        
    

注意:在项目选择配置文件时优先选择bootstrap.yml,因为bootstrap.yml的加载在application.properties之前,这其中如涉及上下文时系统可能会提示错误。、

这里简单回答一下两者的区别:

      Spring Cloud 构建于 Spring Boot 之上,在 Spring Boot 中有两种上下文,一种是 bootstrap, 另外一种是 application, bootstrap 是应用程序的父上下文,也就是说 bootstrap 加载优先于 applicaton。bootstrap 主要用于从额外的资源来加载配置信息,还可以在本地外部配置文件中解密属性。这两个上下文共用一个环境,它是任何Spring应用程序的外部属性的来源。bootstrap 里面的属性会优先加载,它们默认也不能被本地相同配置覆盖。

因此,对比 application 配置文件,bootstrap 配置文件具有以下几个特性。

  • boostrap 由父 ApplicationContext 加载,比 applicaton 优先加载
  • boostrap 里面的属性不能被覆盖

你可能感兴趣的:(logback,spring,spring,boot)