0%

日志记录最佳实践

一、使用SLF4J日志框架

使用SLF4J门面日志框架,而不直接使用具体日志框架,比如“Log4j”,“Logback”等。
一般最终选取“SLF4J+Log4j”日志框架组合方案。

二、SLF4J日志框架不同日志级别及不同日志级别适于记录日志内容

SLF4J日志框架的不同日志级别有:TRACE,DEBUG,INFO,WARN,ERROR。
排序顺序为:TRACE < DEBUG < INFO < WARN < ERROR。

2.1、调试语境

属于调试语境的日志级别有:TRACE和DEBUG。
在正常的程序开发流中,一般不主动记录属于调试语境日志级别的日志,只在需要调试时,才进行记录。

日志级别 记录内容描述
TRACE 比DEBUG粒度更小的调试信息
DEBUG 调试信息

2.2、正常语境

属于正常语境的日志级别有 :INFO,WARN和ERROR。
在正常的程序开发流中,一般主动记录属于正常语境日志级别的日志,即:在正常的程序开发流中,一般只需考虑记录INFO,WARN和ERROR日志级别的日志。

日志级别 记录内容描述
INFO 记录程序运行的状态、动作信息
WARN 介于INFO和ERROR之间的信息,比如“非必须处理的错误信息”
ERROR 记录系统逻辑出错、异常或者重要的错误信息

**补充几点:** - 线上生产环境的日志级别开关阈值为INFO - 谨慎地记录日志,大量地输出无效日志,不利于系统性能提升,也不利于快速定位错误点。记录日志时请务必思考:这些日志真的有人看吗?看到这条日志你能做什么?能不能给问题排查带来好处? - 具体日志记录内容不作约定,具体情况具体分析,比如“有些场景需要日志记录的唯一ID,而有些并不需要”
您的支持将鼓励我继续分享!