如何更改所有Log4J 1.x记录器的级别?

时间:2016-02-11 16:29:20

标签: java logging log4j

我希望能够以编程方式设置所有记录器的日志记录级别。 这有效:

    Logger log = Logger.getLogger(Example.class);
    LogManager.getLogger(Example.class).setLevel(Level.FATAL);
    log.debug("Should not see!");
    LogManager.getLogger(Example.class).setLevel(Level.DEBUG);
    log.debug("Should see!");

然而,这不是:

    Logger log = Logger.getLogger(Example.class);
    LogManager.getRootLogger().setLevel(Level.FATAL);
    log.debug("Should not see!");
    LogManager.getRootLogger().setLevel(Level.DEBUG);
    log.debug("Should see!");

1 个答案:

答案 0 :(得分:2)

LogManager.getCurrentLoggers()获取记录器名称,然后设置LogManager.getLogger("<name from loop>").setLevel(Level.FATAL);使用循环。

当您获得LogManager.getRootLogger()获取根级别记录器时。它不会影响所有个人配置。