簡體   English   中英

log4j將Appender限制為特定級別

[英]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過濾器解決了這一問題。

過濾器接受三個選項LevelMinLevelMaxAcceptOnMatch

而且我將每個追加程序都限制在我想要的水平上,也許很乏味,但仍然是我發現以編程方式完成此操作的唯一響應和解決方案

    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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM