log4j 将 Appender 限制在特定级别
log4j limit Appender to a specific Level
我正在尝试以编程方式配置 Log4j。我正在尝试将几个附加程序添加到级别设置为 ALL 的记录器。
也没有其他附加程序(我使用了 removeallAppenders)。
但是当我在信息级别和警告级别调用记录器时,我感到很惊讶
我有 2 个输出。
我需要的只是我在 appender 中配置的打印级别。
这是我使用的一些代码:
LoggerFactory loggerr = new LoggerFactory("myLoggerName","","");
logger.removeAllAppenders();
ConsoleAppender caWarn = new ConsoleAppender();
caWarn.setLayout(layout);
caWarn.setName("warnconsole");
caWarn.setThreshold(Level.INFO);
caWarn.activateOptions();
logger.addAppender(caWarn);
loggerr.info("infooo");
loggerr.warn("warning");
如何只打印信息日志?
正如@Fildor 所说,我通过使用 Appender 过滤器解决了这个问题。
过滤器接受三个选项 LevelMin、LevelMax 和 AcceptOnMatch.
我将每个 appender 限制在我想要的级别,这可能很乏味,但仍然是我发现以编程方式进行的唯一响应和解决方案
ConsoleAppender caInfo = new ConsoleAppender();
caInfo.setName("infoConsole");
caInfo.setThreshold(Level.DEBUG);
layout.setConversionPattern("%-5p %d [%t] %c %x - %m%n");
caInfo.setLayout(layout);
LevelRangeFilter lrf = new LevelRangeFilter();
lrf.setLevelMax(Level.DEBUG);
lrf.setLevelMin(Level.DEBUG);
caInfo.addFilter(lrf);
caInfo.activateOptions();
logger.addAppender(caInfo);
我正在尝试以编程方式配置 Log4j。我正在尝试将几个附加程序添加到级别设置为 ALL 的记录器。 也没有其他附加程序(我使用了 removeallAppenders)。
但是当我在信息级别和警告级别调用记录器时,我感到很惊讶 我有 2 个输出。 我需要的只是我在 appender 中配置的打印级别。
这是我使用的一些代码:
LoggerFactory loggerr = new LoggerFactory("myLoggerName","","");
logger.removeAllAppenders();
ConsoleAppender caWarn = new ConsoleAppender();
caWarn.setLayout(layout);
caWarn.setName("warnconsole");
caWarn.setThreshold(Level.INFO);
caWarn.activateOptions();
logger.addAppender(caWarn);
loggerr.info("infooo");
loggerr.warn("warning");
如何只打印信息日志?
正如@Fildor 所说,我通过使用 Appender 过滤器解决了这个问题。
过滤器接受三个选项 LevelMin、LevelMax 和 AcceptOnMatch.
我将每个 appender 限制在我想要的级别,这可能很乏味,但仍然是我发现以编程方式进行的唯一响应和解决方案
ConsoleAppender caInfo = new ConsoleAppender();
caInfo.setName("infoConsole");
caInfo.setThreshold(Level.DEBUG);
layout.setConversionPattern("%-5p %d [%t] %c %x - %m%n");
caInfo.setLayout(layout);
LevelRangeFilter lrf = new LevelRangeFilter();
lrf.setLevelMax(Level.DEBUG);
lrf.setLevelMin(Level.DEBUG);
caInfo.addFilter(lrf);
caInfo.activateOptions();
logger.addAppender(caInfo);