在利用log4j打印日志时,大部分情况下日志信息都是固定的,但有些时候日志的信息中带有参数化信息,此时可以通过拼接字符串来打印:
logger.debug("参数为:" + i);
此种情况下,如果日志级别为INFO,仍要进行一次字符串拼接的操作,为了节省资源,我们可以先检查是不是开启了Debug信息记录功能 :
if (logger.isDebugEnabled()) {
logger.debug("参数为:" + i);
}
但是这样程序的编码会看起来比较复杂。结合slf4j后,可以避免这个问题。
logger.debug("参数为:{}", i);
两者调用方式区别如下:
log4j:
import org.apache.log4j.Logger;
public class Test {
private static Logger logger = Logger.getLogger(Test.class);
}