一、使用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,而有些并不需要”