2

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

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

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

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

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

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

4

2 回答 2

4

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

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

查看Commons Logging JavaDoc了解更多信息。

于 2010-12-07T14:32:18.747 回答
3

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

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

于 2010-12-07T14:12:05.540 回答