переопределить уровень обработчика через logger.log - PullRequest
0 голосов
/ 27 мая 2019

Есть ли способ переопределить уровень обработчика с помощью объекта logger.

Например:

FileHandler logFile = new FileHandler("DefaultLogger.log");
logger.setLevel(Level.FINE);

также следует установить уровень fileHandler в порядке.

1 Ответ

0 голосов
/ 28 мая 2019

Вы можете использовать метод Logger :: getHandlers , чтобы получить все обработчики установки для данного регистратора.Например:

private static void setHandlersLevel(Level lvl) {
    for (Handler h : logger.getHandlers()) {
       h.setLevel(Level.FINE);
    }
}

В противном случае, если вы хотите найти все обработчики на всех регистраторах, вы можете использовать следующее:

private static void setAllHandlersLevel(Level lvl) {
    LogManager lm = LogManager.getLogManager();
    synchronized (lm) {
        Enumeration<String> e = lm.getLoggerNames();
        while (e.hasMoreElements()) {
            Logger l = lm.getLogger(e.nextElement());
            if (l != null) {
                for (Handler h : l.getHandlers()) {
                    h.setLevel(lvl);
                }
            }
        }
    }
}
...