[英]log4j limit Appender to a specific Level
我正在嘗試以編程方式配置Log4j。 我正在嘗試將幾個附加程序添加到級別設置為ALL的記錄器中。 也沒有其他的附加程序(我使用removeallAppenders)。
但是,當我在INFO LEVEL中調用記錄器時,我感到驚訝,而在WARN LEVEL中,我有2個輸出。 我只需要在附加程序中配置的打印級別。
這是我使用的一些代碼:
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 。
而且我將每個追加程序都限制在我想要的水平上,也許很乏味,但仍然是我發現以編程方式完成此操作的唯一響應和解決方案
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.