Java中日志打印的方式

使用slf4j

  • 使用门面模式的日志框架,有利于项目的维护和各个类的日志处理方式的统一。
  • 实现方式统一使用logback或者log4j2框架。

什么时候应该打印日志

  • 需要debug确定问题的时候,应该考虑打印日志,通过日志进行问题定位。
  • 当碰到if…else或switch这样的分支时,需要在首行打印日志,用来确定进入了哪个分支。
  • 需要通过日志看到整个功能流程时。

日志的格式

  • 使用参数化信息的方式:
logger.debug("Processing trade with id:[{}] and symbol:[{}]",id,symbol);
  • 不要使用字符串拼接的方式,那样会产生很多String对象
  • 使用[]进行参数隔离
  • 如果有异常信息,需要记录完整的堆栈信息

日志的级别

Error:影响到程序正常运行的异常情况

  • 如果进行了抛异常的操作,不要记录日志,应由最终的调用方处理。

Warn:不应该出现但是不影响程序的异常情况

  • 有容错机制时出现的错误
  • 找不到配置文件但系统可以自动配置
  • 系统性能达到临界值
  • 接口抛出业务异常时

Info:系统的运行时信息

  • 系统状态的变更
  • 主要逻辑中的步骤
  • 客户端请求的参数
  • 调用的结果
  • 简单的Service只需要在出入口记录
  • 复杂的程序逻辑需要记录
  • 整个系统的接口需要记录入参
  • 调用外部接口时要记录入参和出参

Debug

  • 记录所有想知道的信息
  • 生产环境需要关闭debug级别的日志
  • 如果生产环境需要开启debug级别的日志,请使用开关进行开启,不要一直开启

你可能感兴趣的:(Java中日志打印的方式)