Log4J - 测试日志级别有用吗?

The*_*ook 2 java log4j

我正在进行代码审查,我想你想到一小段代码:

if(logger.isDebugEnabled())
{
    logger.debug("debug log");
} 
Run Code Online (Sandbox Code Playgroud)

进行测试有真正的原因/好处if(logger.isDebugEnabled())吗?

为什么不在logger.debug("debug log");没有测试的情况下写?

Jes*_*per 5

它对您提供的示例没有用.但是,如果在日志行中包含其他数据,则可能很有用,例如:

logger.debug("Info: " + someObject.getSomeInformation());
Run Code Online (Sandbox Code Playgroud)

请注意,在getSomeInformation调用someObject之前将调用该方法logger.debug,无论该级别是否为debug.此外,将执行字符串连接.为了避免方法调用和字符串连接的成本,您可以if在问题中添加类似的内容.