从我的班级登录时,我使用以下方法:
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?
答案 0 :(得分:3)
使用slf4j作为日志记录框架的日志记录外观,因为它通过使用parametrized logging来解决您提到的问题,以提高性能。
如果您想要更快的日志记录框架,请使用Logback。
答案 1 :(得分:3)
commons日志包中的每个Log实例都可以告诉您是否启用了特定级别。使用此代码:
if ( log.isDebugEnabled() )
{
// Debug log statements
}
查看Commons Logging JavaDoc以获取更多信息。