我正在尝试根据不同的级别创建“不同的”appender,但到目前为止我找不到隔离日志记录级别的方法....
<category name="com.sample" additivity="false">
<priority value="INFO" />
<appender-ref ref="AllAsync"/>
<appender-ref ref="ConsoleAppender"/>
</category>
我需要一种方法来仅获取 INFO 优先级日志以进行附加。由于 INFO 级别的日志记录也放置在 DEBUG 标记的记录器上......这对我没有帮助。
另一件事是对于“相同”的包,我无法定义不同的日志附加程序:
<category name="com.sample" additivity="false">
<priority value="INFO" />
<appender-ref ref="AllAsync"/>
<appender-ref ref="ConsoleAppender"/>
</category>
<category name="com.sample" additivity="false">
<priority value="DEBUG" />
<appender-ref ref="AllAsync"/>
<appender-ref ref="ConsoleAppender"/>
</category>
这里我得到类似这样的错误:
log4j:ERROR Attempted to append to closed appender named [AllAsync].
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender].
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender].
log4j:ERROR Attempted to append to closed appender named [ConsoleAppender].
最佳答案
您可以根据 log4j 常见问题解答和 wiki 使用 LevelMatchFilter 按确切的日志级别进行过滤。
<filter class="org.apache.log4j.varia.LevelMatchFilter">
<param name="LevelToMatch" value="info"/>
<param name="AcceptOnMatch" value="true"/>
</filter>
示例 here .
关于java - 在 log4j 中根据日志记录级别创建不同的日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10105184/