`
spjich
  • 浏览: 95002 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

logback配置黄金法则

    博客分类:
  • j2ee
阅读更多

 

不少人会有logback.xml里面root与logger关系,他们之间如何继承如何配置才能达到需求的问题,网上归纳的很凌乱,以下是个人总结的几条黄金法则。

 

  • root是公共属性,没有logger时会找root里对应level的appender
  • additivity默认为true,为true时会忽略level限制并继承root节点中配置的所有属性

说明:additivity为true时,默认会继承所有root节点下配置的所有appender,例如你配了2个root,每个root下各自有1个appender,那么你的logger节点同时会继承这两个appender(appender name不同),且和日志的级别无关,

多个root之间的appender如果有重复,会按appender的name属性自动去重

而logger下的appender与root下appender的不会去重,比如你logger下的appender打到控制台,logger下的也打到控制台,那么最后结果是日志打两遍

  • additivity为false时,会忽略root中的所有配置的appender,只生效logger下的appender

 

 

建议:

如果对日志打印方式有要求,可以只配logger然后再logger下分别配置appender,这样会有一点冗余,但是至少不会出错。

 

 

 

 

下面是一个小例子,只粘贴出了logger与root部分

 

    <logger name="org" level="INFO"/>
    <logger name="ch.qos.logback" level="INFO"/>
    <logger name="com.alibaba.dubbo" level="INFO"/>
    <logger name="net" level="INFO"/>
    <logger name="com.fnic" level="INFO" additivity="false">
        <appender-ref ref="stdout"/>
        <appender-ref ref="logFileInfo"/>
    </logger>
    <logger name="**.***.***.xxController" additivity="false" level="DEBUG">
        <appender-ref ref="stdout"/>
        <appender-ref ref="logFileDebug"/>
        <appender-ref ref="logFileInfo"/>
    </logger>


    <!--TRACE<DEBUG<INFO<WARN<ERROR-->
    <root level="INFO">
        <appender-ref ref="stdout"/>
        <appender-ref ref="logFileInfo"/>
    </root>

 

 

解析

   <logger name="org" level="INFO"/>
    <logger name="ch.qos.logback" level="INFO"/>
    <logger name="com.alibaba.dubbo" level="INFO"/>
    <logger name="net" level="INFO"/>

这一段由于没有<appender-ref>元素并且又没配置additivity="false" 所以会继承root里的所有appender,所以<root level="INFO"> 这个下面所有appender生效。这种情况下的继承是不分root的level的,所有root都会被继承到

 

<logger name="com.fnic" level="INFO" additivity="false">
        <appender-ref ref="stdout"/>
        <appender-ref ref="logFileInfo"/>
    </logger>

这段是针对com.fnic包下所有class的日志配置,由于配置了additivity=false,所以只会生效 <appender-ref ref="stdout"/>以及<appender-ref ref="logFileInfo"/>这两行

 

 <logger name="**.***.***.xxController" additivity="false" level="DEBUG">
        <appender-ref ref="stdout"/>
        <appender-ref ref="logFileDebug"/>
        <appender-ref ref="logFileInfo"/>
    </logger>

这一段是针对xxController这个类的配置,此类所有DEBUG级别以上的日志信息都会按<appender-ref ref="stdout"/> <appender-ref ref="logFileDebug"/><appender-ref ref="logFileInfo"/>3个appender打印,并且有配置additivity=false 也不会继承任何root

 

 

 

 

 

0
0
分享到:
评论

相关推荐

    LogBack配置文件

    LogBack配置文件,主要包括LOGBack的配置文件内容

    springboot-logback配置

    springboot-logback日志文件配置

    logback配置详解

    logback 配置详解 logback 是由 log4j 创始人设计的另一个开源日志组件,它当前分为三个模块:logback-core、logback-classic 和 logback-access。logback-classic 是 log4j 的一个改良版本,同时它完整实现了 slf4...

    SpringBoot+tk.Mybatis整合+yml配置+logback配置

    在“SpringBoot+tk.Mybatis整合+yml配置+logback配置”这个主题中,我们将探讨以下几个关键知识点: 1. **SpringBoot整合tk.Mybatis**: tk.Mybatis 是 Mybatis 的一个扩展,提供了很多实用功能,如:动态 SQL、...

    logback日志写logstash配置appender参考

    logback日志写logstash配置appender参考

    SpringBoot Logback配置,SpringBoot日志配置

    在Spring Boot中,我们通常通过`application.properties`或`application.yml`配置日志级别和输出位置,但更复杂的配置则需要使用Logback的配置文件`logback.xml`。这个文件应放置在`src/main/resources`目录下,...

    springboot整合logback配置文件

    springboot整合logback配置文件

    logback配置文件

    android的logback配置文件,放于assest文件内,此外还需其他的配置才能用

    项目中在使用的logback配置文件

    项目中在使用的logback,拿过去直接可以用,带完整的中文说明。

    logback通用xml配置

    用于logback框架通用xml配置文件

    logback配置文件解析和示例

    该文件包含logback配置文件示例和配置文件内容解析,如果想深入学习的系哦小伙伴可以下载看看,如果只是想实现功能,可以查看我的博客 《整合篇------JAVA项目整合Logback》

    log4j 和 logback配置资源

    Logback的配置同样通过XML文件完成,其配置灵活性更高,例如支持条件表达式和过滤器,可以实现更精细化的日志管理。 在给定的压缩包中,"log4j.doc"和"logback配置.docx"很可能是两份文档,详细介绍了如何配置和...

    logback日志配置

    ### Logback日志配置详解 #### 一、Logback简介 Logback 是一款非常流行的 Java 日志框架,它由 Ceki Gülcü 开发并维护,作为 log4j 的一个优秀替代品出现。Logback 相对于 log4j 有着更好的性能表现,并且拥有...

    Logback类库含logback.xml配置文件

    `logback.xml` 配置文件是 Logback 框架的核心部分,用于定制日志行为。它允许你定义日志级别(如 TRACE, DEBUG, INFO, WARN, ERROR, FATAL 和 OFF),指定日志输出目的地(控制台、文件、数据库等),以及配置过滤...

    logback配置例子

    logback配置例子,日志系统推荐使用SLF4J,其性能要优于log4j

    Logback配置文件根据 LEVEL级别将日志分类保存到不同文件.docx

    《Logback配置文件根据LEVEL级别将日志分类保存到不同文件》 日志管理是软件开发中的重要一环,它能帮助开发者追踪程序运行状态,定位问题,优化性能。Logback是一个广泛使用的日志框架,它允许我们高效地处理日志...

    logback-slf4j日志配置文件-下载即可使用

    "logback-slf4j日志配置文件下载即可使用" logback-slf4j是Java领域中一种常用的日志记录解决方案,它通过结合slf4j(Simple Logging Facade for Java)来提供了异步日志输出的功能,能够将日志输出到不同的文件中...

    Logback配置文件

    logback配置文件demo,用于在springboot项目中放到resource 目录下即可 logback配置文件demo,用于在springboot项目中放到resource 目录下即可

Global site tag (gtag.js) - Google Analytics