获取当前类/ bean的LogLevel

时间:2010-12-07 14:08:08

标签: java logging java-ee apache-commons java.util.logging

从我的班级登录时,我使用以下方法:

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;    
...
private static Log log = LogFactory.getLog(MyClass.class);
...
log.debug("...");

我注意到,无论应用什么loglevel,都会执行所有日志语句。我不想在不需要时执行与调试相关的语句(性能是一个问题)。

所以我正在寻找这样的东西:

if (LogLevel == debug) {
   log.debug("...");
   ...
}

如何获取当前用于该类的LogLevel?

2 个答案:

答案 0 :(得分:3)

使用slf4j作为日志记录框架的日志记录外观,因为它通过使用parametrized logging来解决您提到的问题,以提高性能。

如果您想要更快的日志记录框架,请使用Logback

答案 1 :(得分:3)

commons日志包中的每个Log实例都可以告诉您是否启用了特定级别。使用此代码:

if ( log.isDebugEnabled() ) 
{
    // Debug log statements
}

查看Commons Logging JavaDoc以获取更多信息。