您当前的位置:首页 > 计算机 > 编程开发 > Java

优雅代码实践1 之 Java 日志

时间:12-14来源:作者:点击数:

今天从代码基中看到有几行记录日志的代码,如下所示:

log.info("---cardPay-----{}", cardPay);
log.info("---isChargedSchedule ", isChargedSchedule);
log.info("--- cardPay.getTimes() > 0-----{}", cardPay.getTimes() > 0);
log.info("--- isNotBlank(cardPay.getPayId()) -----{}", isNotBlank(cardPay.getPayId()));
log.info("--- All  -----{}", isChargedSchedule && cardPay.getTimes() > 0 && isNotBlank(cardPay.getPayId()));
if (isChargedSchedule && cardPay.getTimes() > 0 && isNotBlank(cardPay.getPayId())) {

我想,原始作者,就是为了从日志中追踪下面那个复杂的 if 语句是否命中,但是这种写法有一些问题:

  1. 记录 cardPay.getTime() 就可以了,何必记录 cardPay.getTimes() > 0;
  2. 同理,记录 cardPay.getPayId() 就可以了,何必记录 isNotBlank(cardPay.getPayId());
  3. 既然已经记录了cardPay,就不需要再记录 cardPay.getTime() 和 cardPay.getPayId()了;
  4. 打印那么多 --- 干啥子(类似的还有打印一堆 ### 或者 +++ 之类的),只会白白地增加日志的体量,让日志文件增长的更快之外,根本无助于日志查找(干过平台的知道,偶尔为了在大几G的日志中找点东西,vi 打开以下贼慢啊,而且还要定时清理大文件)。

顺手做一下重构,代码如下:

val hasEnoughBalanceForSchedule = isChargedSchedule
        && cardPay.getTimes() > 0 && isNotBlank(cardPay.getPayId());
log.info("cardPay:{}, isChargedSchedule:{}, hasEnoughBalanceForSchedule:{}",
        cardPay, isChargedSchedule, hasEnoughBalanceForSchedule);
if (hasEnoughBalanceForSchedule) {

这样子的好处如下:

  1. 日志只记录了一行,没有冗余信息;
  2. 代码很清爽,很明确。
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐