避免被diss,务必记住这些正确打日志的方式( 二 )

  • 生产环境需要关闭DEBUG信息
  • 如果在生产情况下需要开启DEBUG,需要使用开关进行管理,不能一直开启 。
  • 说明如果代码中出现以下代码,可以进行优化:
    //1. 获取用户基本薪资//2. 获取用户休假情况//3. 计算用户应得薪资优化后的代码:
    logger.debug("开始获取员工[{}] [{}]年基本薪资",employee,year);logger.debug("获取员工[{}] [{}]年的基本薪资为[{}]",employee,year,basicSalary);logger.debug("开始获取员工[{}] [{}]年[{}]月休假情况",employee,year,month);logger.debug("员工[{}][{}]年[{}]月年假/病假/事假为[{}]/[{}]/[{}]",employee,year,month,annualLeaveDays,sickLeaveDays,noPayLeaveDays);logger.debug("开始计算员工[{}][{}]年[{}]月应得薪资",employee,year,month);logger.debug("员工[{}] [{}]年[{}]月应得薪资为[{}]",employee,year,month,actualSalary);TRACE基本概念特别详细的系统运行完成信息,业务代码中,不要使用.(除非有特殊用意,否则请使用DEBUG级别替代)
    规范示例说明@Override@Transactionalpublic void createUserAndBindMobile(@NotBlank String mobile, @NotNull User user) throws CreateConflictException{    boolean debug = log.isDebugEnabled();    if(debug){        log.debug("开始创建用户并绑定手机号. args[mobile=[{}],user=[{}]]", mobile, LogObjects.toString(user));    }    try {        user.setCreateTime(new Date());        user.setUpdateTime(new Date());        userRepository.insertSelective(user);        if(debug){            log.debug("创建用户信息成功. insertedUser=[{}]",LogObjects.toString(user));        }        UserMobileRelationship relationship = new UserMobileRelationship();        relationship.setMobile(mobile);        relationship.setOpenId(user.getOpenId());        relationship.setCreateTime(new Date());        relationship.setUpdateTime(new Date());        userMobileRelationshipRepository.insertOnDuplicateKey(relationship);        if(debug){            log.debug("绑定手机成功. relationship=[{}]",LogObjects.toString(relationship));        }        log.info("创建用户并绑定手机号. userId=[{}],openId=[{}],mobile=[{}]",user.getId(),user.getOpenId(),mobile);    }catch(DuplicateKeyException e){        log.info("创建用户并绑定手机号失败,已存在相同的用户. openId=[{}],mobile=[{}]",user.getOpenId(),mobile);        throw new CreateConflictException("创建用户发生冲突, openid=[%s]",user.getOpenId());    }}
    【避免被diss,务必记住这些正确打日志的方式】


    推荐阅读