【问题标题】:How to avoid double logging with logback? [duplicate]如何避免使用 logback 进行双重记录? [复制]
【发布时间】:2016-10-11 07:05:08
【问题描述】:

在我的应用程序中,与正在记录的所有其他消息相比,我想以特定方式记录来自我自己的代码的一些消息。但是我不确定如何避免它们也被自动记录到 logack 根记录器。

使用下面的配置,我想使用如下代码 (scala),以便我可以仅将某些消息记录到该记录器。

val logger: Logger = LoggerFactory.getLogger("data-logger")

但是在下面的配置中,这些消息被记录了两次,即它们也被根记录器记录。我怎样才能避免这种情况?我必须人为地使用不同的日志记录级别来通过 logback 完成类似的事情吗?

<configuration>

  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>logs/activity.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
      <fileNamePattern>activity.%i.log.zip</fileNamePattern>
      <minIndex>1</minIndex>
      <maxIndex>10</maxIndex>
    </rollingPolicy>
    <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
      <maxFileSize>10MB</maxFileSize>
    </triggeringPolicy>
    <encoder>
      <pattern>%msg%n</pattern>
    </encoder>
  </appender>

  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
      <pattern>%msg%n</pattern>
    </encoder>
  </appender>

  <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
    <!-- use discarding threshold of zero to avoid ignoring INFO level messages see docs -->
    <discardingThreshold>0</discardingThreshold>
      <appender-ref ref="FILE" />
  </appender>

  <root level="info">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="ASYNC" />
  </root>

  <logger name="data-logger" level="info">
    <appender-ref ref="STDOUT" />
    <appender-ref ref="ASYNC" />
  </logger>

</configuration>

【问题讨论】:

  • 是否已将引用的问题编辑为具有反映其处理内容的标题,也许您可​​以说它们是重复的。只是标记为重复而不检查另一个的质量,是草率的,应该被禁止。

标签: java scala logging logback


【解决方案1】:

记录器是分层的,默认情况下,发送到记录器的任何消息都将发送到其所有祖先。您可以通过设置additivity=false 来禁用此行为。例如:

<logger name="data-logger" level="info" additivity="false">

【讨论】:

  • 我已经添加了这个,但是,得到双日志?
  • 您可以添加additivity="false",如上图所示。或者,您可以从“数据记录器”中删除 appender-ref 元素,因为它们已经从根记录器继承。
猜你喜欢
  • 1970-01-01
  • 2013-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-07
  • 2019-10-15
  • 2019-10-15
相关资源
最近更新 更多