Log4j2

日志级别

  • WARN 表示可以恢复的问题,无需人工介入。
  • ERROR 表示需要人工介入问题。

问题

  1. // 这样的代码如果加上判断,会通过优化直接去除调日志打印
  2. if(LOGGER.isDebugEnabled()){
  3. LOGGER.debug("name {}",user.name());
  4. }
  5. // 这样的代码即使不输出日志,也会调用user.toString()的开销
  6. LOGGER.debug("user:" + user);
  7. // 这样的代码即使不输出日志,也会调用user.name()的开销,当然此开销和isDebugEnabled基本差不多,但是如果调用的方法是耗时方法,需注意
  8. LOGGER.debug("name:{}",user.name());
  9. // 因此日志打印需加判断条件,也可使用lambda化简isDebugEnabled为这种格式 log.debug(() -> "user:" + user)