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

How to change level of all Log4J 1.x loggers?

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

    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!");

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

当您获得 LogManager.getRootLogger() 时获得根级记录器。它不会影响所有单独的配置。