使用 SLF4J 代替 Log4J

Log4J 一直是我们首选的日志框架,但其一直有个不便之处。当记录 DEBUG 日志时,我们常用以下语句:

 

if (LOG.isDebugEnabled()) {
  LOG.debug("...");
}

在这里,if 是个很恼人的判断语句。如果我们去掉 if,那便会导致不必要的日志消息渲染。这所导致的性能损耗并不是可以完全忽略不计的,某些情况下还有可能导致严重的性能问题。但如果我们留着 if,这又会污染我们的代码,使得其不再干净整洁。而且,当使用 PMD 等代码质量检查工具时,这样的 if 会使代码的圈复杂度变高。

 

当使用 SLF4J 时,如此问题便不会再骚扰我们。

 

LOG.debug("...{}...", param1, param2);
LOG.debug("...{}...{}", param1, param2);
LOG.debug("...{}...{}...{}", new Object[]{p1, p2, p3});

因为 SLF4J 使用类似于 java.text.MessageFormat 的字符串渲染方式,我们不必在使用 if 来判断是什么日记级别了。

 

PS. SLF4J 在 ServiceMix 中工作良好。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值