日志很重要,日志记录对维护网络应用至关重要,日志记录不力可能导致问题无法被发现,从而引起客户不满。
常见日志级别:
大多数编程语言和日志库都提供多种日志级别,通常包括ERROR、WARN、INFO、DEBUG 和 TRACE。不过,不同语言和框架的具体级别及其用法可能会有很大差异。
日志的目的:
日志有多种用途,包括发现和修复错误、调试、了解应用程序使用情况以及深入了解系统如何工作。
日志级别需要简单性:
在实践中,通常两个日志级别就足够了:INFO 和 ERROR。
- INFO 日志提供上下文,有助于了解应用程序正在做什么
- 而 ERROR 日志则提醒开发人员需要注意的问题。
其他日志级别不需要:
作者批评了 WARN、DEBUG 和 TRACE 等附加日志级别的使用,认为它们往往会导致混乱:开发人员可能会被大量警报淹没,导致重要问题被忽视。
这些级别的日志要么是无用的,应予以删除;
- 要么是对调试有用的,应作为 INFO;
- 要么是重要的,应作为 ERROR 处理。
最佳实践:
文章提出了几种增强日志的最佳实践,包括:
- 附加请求或跟踪 ID、
- 包含时间戳、
- 为用户或文档上下文添加相关 ID、
- 记录审计信息、
- 指出设置了哪些功能标志,
- 以及指定日志的来源。
日志一致性:
作者强调了日志记录一致性的重要性,建议不要在修复漏洞时添加日志,之后又将其删除。相反,他们建议维护一套对各种问题都有用的通用日志。
总结:
log4j等现代日志框架只需要两者:
- 阐明上下文
- 突出问题所在
这两种类型正是简明逻辑的体现,首先从这两个入手,其他警告级别是更多细节,从属于这两种类型,如果这两种类型不明显,可以使用其他级别。但是如果每个程序员都具有上下文概念,那么一切简单多了。