java isdebugenabled_在log4j中,在记录之前检查isDebugEnabled是否可以提高性能?

我在应用程序中使用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()是一个非常小的方法(就代码而言),因此成为内联的好人选。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值