为了账号安全,请及时绑定邮箱和手机立即绑定

通过 logger.log 覆盖处理程序级别

通过 logger.log 覆盖处理程序级别

慕姐8265434 2022-12-15 16:08:21
有没有办法通过记录器对象覆盖处理程序的级别。例如:FileHandler logFile = new FileHandler("DefaultLogger.log"); logger.setLevel(Level.FINE);也应该将 fileHandler 的级别设置为正常。
查看完整描述

1 回答

?
不负相思意

TA贡献1777条经验 获得超10个赞

您可以使用Logger::getHandlers方法获取给定记录器的所有安装处理程序。例如:

private static void setHandlersLevel(Logger logger, Level lvl) {

    for (Handler h : logger.getHandlers()) {

       h.setLevel(lvl);

    }

}

否则,如果你想在所有记录器上找到所有处理程序,你可以使用以下命令:


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

                }

            }

        }

    }

}


查看完整回答
反对 回复 2022-12-15
  • 1 回答
  • 0 关注
  • 102 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信