关于日志记录的一些感想—-原文地址
1.讲到了Java 中众多的开源日志框架,重点讲到了我现阶段也感兴趣和接触过的 SLF4J
SLF4J 不包含日志的实现,但是提供了众多的适配器来适配其他所有的开源日志框架,这样,在开发中我们只需要在代码中面对它的 API 即可,实现任意的切换。
好处(我们的项目往往会依赖很多的第三方开源框架,而这些开源框架有可能都采用不同的日志框架,不同的日志框架需要的配置也是不同的,不同的配置会导致日志输出到不同的位置,这样便不方便我们后续的日志收集和整理。SLF4J可以帮我们统一配置这些第三方库中使用的日志)
其中提到 logback 的实现很好,便以它作为日志的实现。
2. 讲到了日志的隔离级别 (TRACE, DEBUG, INFO, WARN, ERROR, FATAL)
以下讲到的将会是作者的使用习惯和经验:
- TRACE
作者会用来记录业务日志 - WARN
一般在出现了一场,但是又在业务的合理范围之内的会使用 warn - INFO
一般非常重要的日志,关键系统参数的回显、后台服务的初始化状态、需要开发者确认的信息会使用INFO - DEBUG
详细的记录流程的关键路径,这种级别的日志是为了方便我们开发和调试系统功能的,在生产环境默认是关闭的。 - ERROR
系统出现异常情况的时候 - FATAL
作者没有用过,用 ERROR 代替
3.日志的格式和分类
统一定义日志文件的名称,日志内容的格式,可以极大得方便后续日志的手机和解析工作。
- 指导原则
- INFO 及以上的系统日志统一输出到 Console
- 业务日志、系统日志、异常日志分别输出到不同的文件中,更加方便异常问题的排查
4. 日志输出的注意点
- 发生时间
- 出现问题的线程
- 日志级别
- 出现问题的类文件,类的哪一行,异常线
- 程序入参
- 相应的程序员的注释等
关于日志,还是需要多实践总结