如何避免使用日志回退进行双重日志记录?
在我的应用程序中,与记录的所有其他消息相比,我想以特定方式记录来自我自己的代码的一些消息。但是,我不确定如何避免它们也自动记录到logack根记录器中。
使用下面的这个配置,我想使用像 follows (scala) 这样的代码,这样我就可以只将某些消息记录到该记录器。
val logger: Logger = LoggerFactory.getLogger("data-logger")
但是,在下面的配置中,这些消息被记录两次,即它们也由根记录器记录。我该如何避免这种情况?我必须非常人为地使用不同的日志记录级别来完成类似的事情吗?
<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>