如何仅打印INFO级别?
我当前的日志是将所有INFO,WARN,ERROR和FATAL级别打印到控制台 - 我理解为什么会发生这种情况。 (因为它们都高于INFO)
有没有办法只指定,只有INFO级别才会被发送到控制台appender而不是它上面的所有内容?
目前有以下log4j2 xml:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="App" packages="">
<Appenders>
<File name="logFile" fileName="C:\Users\user\workspace\logs\log.out">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
</File>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="com.App" level="info" additivity="false">
<AppenderRef ref="logFile" level="error"/>
<AppenderRef ref="Console" level="info"/>
</Logger>
<Root level="error">
<AppenderRef ref="logFile" />
</Root>
</Loggers>
答案 0 :(得分:1)
需要使用ThresholdFilter;
<ThresholdFilter level="WARN" onMatch="DENY" onMismatch="ACCEPT" />
这会阻止WARN级别及其上方的所有内容。所以现在它只接受信息。