debug日志要不要加if判断?

657 阅读1分钟

结论

要加。

原因

因为入参代码会执行。比如现在是Info级别,哪怕不是debug级别,debug方法的入参代码仍然会执行。

入参代码包括

  1. 拼接字符串
  2. 如果是占位符,第二个入参也会执行:比如用阿里fastjson序列化对象等耗时操作。

测试

log.debug("测试{}",test()); //test方法会执行

test(){
log.info("test()");
}

如果是占位符,其实也会执行的。即入参会执行,哪怕不是debug级别。

可以看到info日志有打印,但是debug没有打印,因为当前日志级别是info。

修改日志级别

#日志文件级别与输出源设置
filter.log4j.rootLogger=info

配置文件这里修改日志级别。

如何判断当前日志级别?

log.isDebugEnabled() //是否开启debug级别

参考

segmentfault.com/a/119000003…