如何检查Java.util.logging中启用的信息日志级别

时间:2016-06-03 10:44:31

标签: java logging java.util.logging

如何在实际记录调试语句之前检查是否启用了某个日志记录级别?

2 个答案:

答案 0 :(得分:4)

是的,它提供了 -

Logger#isLoggable(Level level)
  

检查是否实际记录了给定级别的消息   记录仪。此检查基于Loggers有效级别,可以   继承自其父母。

documentation

答案 1 :(得分:0)

使用 Java 或 (SLF4J) 的 Simple Logging Facade - http://www.slf4j.org/faq.html#logging_performance 可以完全避免检查日志记录级别。在参数化消息的情况下

Object entry = new SomeObject();
logger.debug("The entry is {}.", entry);

在评估是否记录后,并且只有当决定是肯定的时,记录器实现才会格式化消息并将“{}”对替换为条目的字符串值。换句话说,这种形式在禁用日志语句的情况下不会产生参数构建的成本。

以下两行将产生完全相同的输出。但是,在禁用日志记录语句的情况下,第二种形式的性能将比第一种形式高出至少 30 倍。

logger.debug("The new entry is "+entry+".");
logger.debug("The new entry is {}.", entry);