我在应用程序中使用Log4J进行日志记录。以前我使用像下面这样的调试调用:
选项1:
logger.debug("some debug text");
但有些链接建议最好先检查一下isDebugEnabled(),例如:
选项2:
boolean debugEnabled = logger.isDebugEnabled();
if (debugEnabled) {
logger.debug("some debug text");
}
所以我的问题是“ 选项2是否会以任何方式提高性能? ”。
因为在任何情况下,Log4J框架都对debugEnabled进行相同的检查。对于选项2,如果我们在单个方法或类中使用多个调试语句,则框架可能不需要isDebugEnabled()(在每次调用中)多次调用方法,这可能是有益的。在这种情况下,它isDebugEnabled()仅调用一次方法,并且如果Log4J配置为调试级别,则实际上它isDebugEnabled()两次调用方法:
如果将值分配给debugEnabled变量,则
实际是由logger.debug()方法调用的。
我不认为如果我们logger.debug()在方法或类中编写多个语句,debug()然后根据选项1 调用方法,那么与选项2相比,它对Log4J框架来说是开销。因为这isDebugEnabled()是一个非常小的方法(就代码而言),因此成为内联的好人选。
慕莱坞森
www说
慕工程0101907
相关分类