我正在尝试适应 log4j2,并且在某种程度上创建了一个配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="LogToConsole" target="SYSTEM_OUT">
<PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} %-5level %logger{36}.%M() @%L - %msg%n}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=green bold, DEBUG=blue bold, TRACE=blue}"/>
</Console>
<File name="LogToFile" fileName="src/test-output/logs/Results.log">
<PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} %-5level %logger{36}.%M() @%L - %msg%n}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=green bold, DEBUG=blue bold, TRACE=blue}"/>
<append>false</append>
</File>
</Appenders>
<Loggers>
<Logger name="Tests" level="trace" additivity="false">
<AppenderRef ref="LogToConsole"/>
<AppenderRef ref="LogToFile"/>
</Logger>
<Root level="error">
<AppenderRef ref="LogToFile"/>
<AppenderRef ref="LogToConsole"/>
</Root>
</Loggers>
</Configuration>
我想要实现的是只将错误记录到文件中。请帮助我如何修改它以实现此类配置。
有几种方法可以实现这一点。它们都涉及使用阈值过滤器。不同之处在于您配置过滤器的位置。作为以下配置的替代方案,也可以将 ThresholdFilter 放在适当的 Appender References 上。我应该注意到您只要求错误事件,因此下面的配置过滤掉了 FATAL 级别的事件。如果你也想要这些,你可以简单地删除 FATAL 的过滤器。此外,这也使得对 Appender 引用的过滤变得更加容易,因为您可以简单地添加level="ERROR"
到适当的 Appender 引用中。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="LogToConsole" target="SYSTEM_OUT">
<PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} %-5level %logger{36}.%M() @%L - %msg%n}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=green bold, DEBUG=blue bold, TRACE=blue}"/>
</Console>
<File name="LogToFile" fileName="src/test-output/logs/Results.log" append="false">
<PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} %-5level %logger{36}.%M() @%L - %msg%n}{FATAL=red blink, ERROR=red, WARN=yellow bold, INFO=green bold, DEBUG=blue bold, TRACE=blue}"/>
<Filters>
<ThresholdFilter level="ERROR" onMatch="NEUTRAL" onMismatch="DENY"/>
<!-- This is only needed if ONLY error events are to be logged -->
<ThresholdFilter level="FATAL" onMatch="DENY" onMismatch="ACCEPT"/>
</Filters>
</File>
</Appenders>
<Loggers>
<Logger name="Tests" level="trace" additivity="false">
<AppenderRef ref="LogToConsole"/>
<AppenderRef ref="LogToFile"/>
</Logger>
<Root level="error">
<AppenderRef ref="LogToFile"/>
<AppenderRef ref="LogToConsole"/>
</Root>
</Loggers>
</Configuration>
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句