log.isXXXEnabled()此方法用于判断某个级别的日志是否被允许输出,多用于系统性能优化操作
(附:日志输出级别包括:ALL、TRACE、DEBUG、INFO、WARN、ERROR、FATAL、OFF)
那么该怎么使用这个方法进行性能优化呢?
让我们一起来看下面这段代码
String msg = "get() - in thread [" + Thread.currentThread().getName() + "]";
log.trace(msg);
在上方代码中先执行了一次字符串拼接操作,再输出日志,这样一看好像没什么问题,但是如果我们程序设置的日志输出级别不允许这行日志输出呢?没错,那么我们就白白进行了一次字符串的拼接操作,造成了性能的浪费。随着项目越来越庞大,需要记录的日志就越多,倘若我们不对这些无用操作进行处理,它们对性能来说就是一个不小的负担,所以我们需要引入判断命令,避免无用的字符串拼接操作,优化代码如下
if (log.isTraceEnabled()) {
String msg = "get() - in thread [" + Thread.currentThread().getName() + "]";
log.trace(msg);
}
优化后若程序设置了不允许输出该级别日志那么就不会执行if里面的语句,从而避免了无效操作