【发布时间】: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