我将日志级别设置为CONFIG,但看不到写在CONFIG级别上的消息。我错过了什么?
配置:
Logger logger = java.util.logging.Logger.getLogger("xxx");
logger.setLevel(java.util.logging.Level.CONFIG);测试:
logger.log(java.util.logging.Level.SEVERE, "severe");
logger.log(java.util.logging.Level.WARNING, "warning");
logger.log(java.util.logging.Level.INFO, "info");
logger.log(java.util.logging.Level.CONFIG, "config");
logger.log(java.util.logging.Level.FINE, "fine");
logger.log(java.util.logging.Level.FINER, "finer");
logger.log(java.util.logging.Level.FINEST, "finest");输出:
SEVERE: severe
WARNING: warning
INFO: info发布于 2011-02-11 23:29:17
因此,我建议您改用它。
编辑:我写了一个小测试程序来验证,你确实需要设置附加到根记录器的处理程序的级别。您可以这样做:
for (Handler handler : Logger.getLogger("").getHandlers()) {
handler.setLevel(Level.CONFIG);
}
logger.config("config");以输出形式给出:
配置:配置
还可以尝试使用类路径上的属性文件进行配置,该文件如下所示:
java.util.logging.ConsoleHandler.level=CONFIG发布于 2011-02-11 23:06:02
这是预期的行为。
当您定义一个级别的日志时,您将看到此级别的所有日志,但也会看到链接到更高级别的日志。
顺序如下:
严重(最高value)
)
因此,在您的示例中,如果将级别定义为INFO,则只能看到SEVERE、WARNING和INFO日志,而不会看到CONFIG消息。
编辑,回答您已更正的问题:
也许您的Logger类使用了第三方库(log4j、slf4j等),并且这个库定义了自己的日志级别。例如,对于log4j,只有以下级别:
在这种情况下,级别CONFIG被视为INFO级别,这解释了您当前的行为。
https://stackoverflow.com/questions/4970513
复制相似问题