我正在尝试在Spring Web应用程序上安装我的log4j2(版本2.8.2)安装,但是有一个问题,我仍然无法解决。 我正在编写一个控制台附加程序,以使开发人员可以看到红色的 ERROR / FATAL日志和黑色的 INFO ,但是我看到了两次错误提示(一次是黑色,一次是红色) )。
这是我的log4j2.xml
文件,我也从this other answer那里汲取了灵感,没有运气:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n">
<Filters>
<ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="ACCEPT" />
</Filters>
</PatternLayout>
</Console>
<Console name="ErrorConsole" target="SYSTEM_ERR">
<PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n">
<Filters>
<ThresholdFilter level="ERROR" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
</PatternLayout>
</Console>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console" />
<AppenderRef ref="ErrorConsole" level="error"/>
</Root>
</Loggers>
</Configuration>
使用这种配置,当发生异常时,它将被记录两次,每个控制台附加程序记录一次。
我可以正确使用ThresholdFilter吗?
从documentation中我读到:
onMatch String Action to take when the filter matches. May be ACCEPT, DENY or NEUTRAL. The default value is NEUTRAL.
onMismatch String Action to take when the filter does not match. May be ACCEPT, DENY or NEUTRAL. The default value is DENY.