2
我試圖做的是非常簡單的:LOG4J2:多記錄器,多個附加目的地,在不同的日誌記錄級別
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="Console">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
<File name = "hibernateFile" fileName = "${artifactId}/logs/hibernate.log">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
<File name = "springFile" fileName = "${artifactId}/logs/spring.log">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
<File name = "rootFile" fileName = "${artifactId}/logs/root.log">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</File>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="Console"/>
<AppenderRef ref="rootFile"/>
</Root>
<Logger name ="org.springframework" level = "debug">
<AppenderRef ref = "Console" level = "info"/>
<AppenderRef ref = "springFile" level = "debug"/>
</Logger>
<Logger name ="org.hibernate" level = "debug">
<AppenderRef ref = "Console" level ="info"/>
<AppenderRef ref = "hibernateFile" level = "debug"/>
</Logger>
</Loggers>
</Configuration>
我要顯示我的控制檯附加目的地的重要郵件,而我希望詳細的消息被路由到文件appender。然而,我不想過濾appender本身 - 因爲我可能想在那裏路由一些調試或跟蹤消息(例如,當我在開發中時)。
Apache FAQ暗示我可以通過AppenderRef
上的日誌記錄級別進行過濾,但我已經嘗試過了,如上面xml中所述 - 並且仍將DEBUG級別消息路由到控制檯。
我也試着在AppenderRef
上添加一個ThresholdFilter,但是它也沒有對它進行過濾。
<Logger name ="org.hibernate" level = "debug">
<AppenderRef ref = "Console">
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
</AppenderRef>
<AppenderRef ref = "hibernateFile" level = "debug"/>
</Logger>