记录信息最佳实践

Ric*_*cky 4 logging log4net

我正在做生产支持,很依赖日志进行故障排除.我发现日志信息现在非常混乱.

您能提供编写日志信息的最佳实践或指南吗?

顺便说一句:我们正在使用log4Net.你对替代图书馆有什么建议吗?

谢谢.

cor*_*njc 7

理想情况下,您的日志消息应包括"何时","内容","何处","谁"以及触发消息的事件的严重程度的详细信息.

  • 包括日期和时间.如果您的应用程序跨时区分布,则还包括时区指示符.如果每个人都知道03:11:04在他们的时区中的确切时间,它将消除混乱.
  • 包括日志记录严重性级别.
  • 在日志消息中包含触发日志按摩的模块或类的一些指示.
  • 如果可能的话,鼓励开发人员在消息中包含特定信息:例如,'文件损坏',没有用,'文件损坏:"C:\ foo\bar.dat"'
  • 如果可能,让开发人员在错误消息中包含某种会话或事务ID.能够过滤来自具有错误的事务的消息的日志并忽略所有正常的事务是很方便的.
  • 在日志消息中包含错误代码以获取错误通常是个好主意.

我的第二个建议是@Oded保持信息的整洁.对于例程的东西,日期和时间,日志级别,错误代码,我会尝试将它们格式化为固定宽度,并将它们放在开头.它使扫描日志变得更加容易.

关于日志消息格式的良好指南,我唯一遇到的是"Release It!"一书的第17章:http://www.pragprog.com/titles/mnee/release-it很多以上建议是基于此.