.. 判断Logger级别是否开启的方法
- public boolean isTraceEnabled();
- public boolean isDebugEnabled();
- public boolean isInfoEnabled();
- public boolean isWarnEnabled();
- public boolean isErrorEnabled();
这组方法的作用主要是避免没必要的log信息对象的产生,尤其是对于不支持参数化信息的Log框架(Log4j 1, commons-logging)。如下面的例子所示,如果没有加debug级别判断,在Debug级别被禁用的环境(生产环境)中,第二行的代码将没有必要的产生多个String对象。
if(logger.isDebugEnabled()){
logger.debug("["+resultCount+"]/["+totalCount+"] of users are returned");
}
如果使用了参数信息的方法,在如下代码中,即使没有添加debug级别(第一行)判断,在生产环境中,第二行代码只会生成一个String对象。
if(logger.isDebugEnabled()){
logger.debug("[{}]/[{}] of users in group are returned", resultCount,totalCount);
}
因此,为了代码的可读性,我一般情况下使用参数化信息的方法,并且不做Logger级别是否开启的判断,换句话说,这组方法我一般情况下不会用。
- public boolean isTraceEnabled();
- public boolean isDebugEnabled();
- public boolean isInfoEnabled();
- public boolean isWarnEnabled();
- public boolean isErrorEnabled();
if(logger.isDebugEnabled()){
logger.debug("["+resultCount+"]/["+totalCount+"] of users are returned");
}
logger.debug("["+resultCount+"]/["+totalCount+"] of users are returned");
}
if(logger.isDebugEnabled()){
logger.debug("[{}]/[{}] of users in group are returned", resultCount,totalCount);
}
logger.debug("[{}]/[{}] of users in group are returned", resultCount,totalCount);
}