具有回调条件的多个根记录器



指:Logback的配置

我的配置可以包含 ...at most one <root> element...

但后来在同一文档中,在讨论条件时,我看到这个:

<configuration debug="true">
  <if condition='property("HOSTNAME").contains("torino")'>
    <then>
      <appender name="CON" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
          <pattern>%d %-5level %logger{35} - %msg %n</pattern>
        </encoder>
      </appender>
      <root> <------ root logger #1
        <appender-ref ref="CON" />
      </root>
    </then>
  </if>
  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>${randomOutputDir}/conditional.log</file>
    <encoder>
      <pattern>%d %-5level %logger{35} - %msg %n</pattern>
   </encoder>
  </appender>
  <root level="ERROR"> <------ root logger #2
     <appender-ref ref="FILE" />
  </root>
</configuration>

请注意,有两个<root>元素! 我很困惑,因为我没有看到任何<else>元素,我会假设 FILE 追加器和第二个根记录器仍在运行,即使主机名是"都灵"。

这如何是一个有效的例子? 为什么在这种情况下允许两个<root>记录器,而一个不在<if><else>

我错过了什么???

免责声明:我是 logback 项目的维护者。

这绝对值得在日志文档中进行澄清。你能在 http://jira.qos.ch 提交错误报告吗?引用这个 StackOverflow 条目应该就足够了。

至于哪个根记录器处于活动状态,假设条件为真,它们都将处于活动状态。名为 FILE 和 CON 的追加器都将附加到根记录器。级别将设置为最后一个设置的值。请注意,条件中的根元素不设置级别。

相关内容

  • 没有找到相关文章

最新更新