这是我的java logback配置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %msg%n></pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<encoder charset="UTF-8">
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="org.apache.zookeeper" additivity="false">
<appender-ref ref="stdout"/>
</logger>
<logger name="com.hazelcast" additivity="false">
<appender-ref ref="stdout"/>
</logger>
<root level="INFO">
<appender-ref ref="FILE" />
</root>
我想做的是: 我有两个日志追加器:一个用于控制台,另一个用于日志文件;但是对于相同的java包(例如:org.apache.zookeeper),我想使用两个不同的日志级别,INFO用于文件appender,ERROR用于吊装; 但我的日志配置上行不通。 任何人都可以找出我的错误或一些解决方案吗?
答案 0 :(得分:2)
由于每个Java包的日志级别只能全局定义,因此您可以使用ThresholdFilter过滤控制台appender中ERROR
以下的所有级别。
答案 1 :(得分:1)
你可以阻止他们:
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator>
<expression>logger.contains("zookeeper") || logger.contains("hazelcast") </expression>
</evaluator>
<OnMismatch>ACCEPT</OnMismatch>
<OnMatch>DENY</OnMatch>
</filter>