我有一个log4j2配置,只记录那些级别为ERROR
的条目:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%msg%n"/>
<ThresholdFilter level="ERROR" />
</Console>
<File name="MyFile" fileName="${sys:logFilename}" immediateFlush="false" append="false">
<PatternLayout pattern="%d{yyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="debug">
<AppenderRef ref="Console"/>
<AppenderRef ref="MyFile"/>
</Root>
</Loggers>
</Configuration>
相反,我想要登录控制ERROR
和INFO
级别,但没有其他级别。我该如何配置?
答案 0 :(得分:0)
步骤1是确保appender接收您希望它记录的所有事件。您已将根记录器设置为DEBUG,以便完成该部分。好。
第2步是过滤掉该appender的所有不需要的日志事件。
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%msg%n" />
<Filters>
<!-- First deny warn and fatal messages -->
<ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
<ThresholdFilter level="fatal" onMatch="DENY" onMismatch="NEUTRAL"/>
<!-- Then from the remainder,
accept info, warn, error, fatal (actually only INFO & ERROR are left)
and deny debug/trace -->
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
<ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
</Filters>
</Console>