为什么在使用日志框架进行日志记录之前检查loglevel?

时间:2018-02-01 12:22:39

标签: logging log4j

为什么有人写(伪代码):

if ( logger.level == debug ){
    logger.debug("do my debug log");
}

我没有看到背后的想法,因为只有在定义的日志级别允许的情况下,日志框架才会记录。

感谢。

1 个答案:

答案 0 :(得分:1)

我同意你的直觉,在这种情况下,不需要检查。快速搜索了有人想要这样做的原因,我确实找到了:https://stackoverflow.com/a/963681/346912

基本上,该帖子指出,在某些情况下,作为日志记录的一部分可能会进行昂贵的计算 - 例如,从大型对象或集合中创建调试字符串。在这种情况下,通过条件检查避免该步骤会更有意义。