有没有办法通过记录器对象覆盖处理程序的级别。例如: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);
}
}
}
}
}
添加回答
举报
0/150
提交
取消