Log4j优化

来源:互联网 发布:辱妻杀人案 知乎 编辑:程序博客网 时间:2024/04/28 20:10

有多少人用Log4j的时候会在每一个Debug/Info之前加一个判断?

可能很多人都说了,这有什么关系,我在运行的时候是把Log Level设置成Error的。

那么请看下面这个代码:

String result;
...
...
...
logger.debug(”result is” + result );

再看看这个代码:

String result;
...
...
...
if(logger.isDebugEnabled())
{
       logger.debug(”result is” + result );
}


把Log Level设置成ERROR,运行结果又区别吗?没有!!
程序的性能有区别吗?区别大了!!!

因为什么呢?

虽然第一段代码也不产生Log输出,但是debug()里面的字符串变量是实例化了,明白了吗?

这个就是为什么很多人抱怨Log4j占用很大CPU时间的原因了,尤其是在大循环的时候。

赶快在你的程序中加上这样的判断条件吧。

原创粉丝点击