Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将log4j消息路由到唯一的appender_Java_Logging_Log4j - Fatal编程技术网

Java 如何将log4j消息路由到唯一的appender

Java 如何将log4j消息路由到唯一的appender,java,logging,log4j,Java,Logging,Log4j,在log4jmost(如果不是全部的话)appender扩展了AppenderSkeleton,它提供了一种setThreshold(Priority)方法,用于设置消息必须设置的最小“级别”,以便appender将其记录到某个地方 我想根据消息的确切级别/优先级将消息记录到不同的附加器 例如,我希望调试消息登录到ConsoleAppender,而不是其他地方。我希望信息消息登录到文件附加器,而不是其他地方。我希望错误消息登录到JMSAppender而不是其他地方 问题在于此setThresho

log4j
most(如果不是全部的话)appender扩展了
AppenderSkeleton
,它提供了一种
setThreshold(Priority)
方法,用于设置消息必须设置的最小“级别”,以便appender将其记录到某个地方

我想根据消息的确切级别/优先级将消息记录到不同的附加器

例如,我希望调试消息登录到
ConsoleAppender
,而不是其他地方。我希望信息消息登录到
文件附加器
,而不是其他地方。我希望错误消息登录到
JMSAppender
而不是其他地方

问题在于此
setThreshold(Priority)
方法设置了记录消息所需的“最小阈值”

当然,我可以将
consoleApender
的阈值设置为DEBUG,但是由于信息和错误消息比DEBUG消息“更高”,因此我也会将信息和错误消息发送到consoleApender

是否有方法或方法可以准确地配置appender“级别”/优先级,或者这是我唯一的选择

使用LevelMatchFilter编辑:
这是朝着正确方向迈出的一步吗

LevelMatchFilter filter = new LevelMatchFilter();
filter.setLevelToMatch(Level.DEBUG.toString());

consoleAppender.addFilter(filter);
上面的代码片段能否完成确保
consoleApender
日志调试和仅调试的任务?

您可以将附加到任何附件,以仅按确切级别筛选日志消息

从javadoc:

这是一个基于级别匹配的非常简单的过滤器


过滤器允许两个选项
LevelToMatch
AcceptOnMatch
。如果
LevelToMatch
选项的值与
LoggingEvent
的级别完全匹配,则
decise(org.apache.log4j.spi.LoggingEvent)
方法在
AcceptOnMatch
选项值设置为true的情况下返回
Filter.ACCEPT
,如果为false,则返回
Filter.DENY
。如果没有匹配项,则返回Filter.NEUTRAL

谢谢jalopaba-请查看我编辑(添加)的代码片段,如果我使用不正确,请告诉我。再次感谢!