代码之家  ›  专栏  ›  技术社区  ›  Xenon

Logback级别元素与级别属性

  •  1
  • Xenon  · 技术社区  · 7 年前

    问题很简单。在一些回溯中。xmls我将级别视为一个元素:

    <logger name="mylog" additivity="false">
      <level value="DEBUG" />
      <appender-ref ref="fileAppender" />
    </logger>
    

    但在某些情况下,它被写成一个属性:

    <logger name="mylog" additivity="false" level="debug">
      <appender-ref ref="fileAppender" />
    </logger>
    

    有什么区别?

    谢谢

    1 回复  |  直到 7 年前
        1
  •  1
  •   glytching    7 年前

    在配置回登录方面,没有区别。以下两个声明在功能上完全相同:

    <logger name="com.x.y">
        <level value="DEBUG"/>
    </logger>
    
    <logger name="com.x.y" level="DEBUG" />
    

    Logback的配置程序(请查看 ch.qos.logback.core.joran.GenericConfigurator.doConfigure() Logger 这两个声明的实例。

    在解析配置时,唯一的区别是第一个配置体现在 ch.qos.logback.core.joran.event.SaxEvent (记录器和级别的开始和结束事件)大于第二个事件(仅记录器的开始和结束事件)。

    如果您将记录器与特定的附加器相关联,那么您已经在定义记录器元素体,例如。

    <logger name="com.x.y">
        <appender-ref ref="STDOUT"/>
    </logger>
    

    level 在元素体中而不是作为属性可能更好地阅读,但这实际上只是开发人员偏好的一个例子。