记录经验法则

时间:2009-09-14 15:40:12

标签: logging

使用日志工具时,常见的“经验法则”是什么? E.g。

  • 每单位时间Z?
  • 的速率限制消息X到Y消息
  • 在记录相同类型的“新”失败消息之前,等待类型为T的最近成功消息?

6 个答案:

答案 0 :(得分:2)

我同意Jonathon的观点,更多的背景会有所帮助。需要考虑的一些事情是:

  1. 如果事件日志失败,您是否允许事件发生?如果是,您还有更多选项,如果没有,那么您需要在事件持续时将事件日志作为事务块的一部分
  2. 是否要清理原木,或者它们是否在系统的使用寿命期间持续存在?如果是,再一次你有很多选择。如果不是,那么你会想把它们放在数据库中。
  3. 日志中会有多少数据?考虑索引和/或分区表。还要考虑一下如何访问日志。记录父对象而不是每个子对象的事件。例如,会计日记,包含许多主要内容,列出交易。不是登录已批准交易的交易ID,而是登录日记,表明交易已获批准。
  4. 这些只是需要思考的几个问题。

答案 1 :(得分:1)

如果您必须丢弃消息,请丢弃不重要的消息。

如果您正在显示重要信息,请不要将其埋入大量不重要的信息中。

在禁用/不需要该级别的消息传递时,显示消息非常便宜。

可以发现系统的当前状态,而无需阅读每条旧消息。

管理日志文件的大小(例如,几个文件而不是一个无限大小的文件),注意填充磁盘。

考虑使用标准输出格式/介质(例如SNMP,<small>或NT事件日志</small>),您可以使用功能齐全的第三方工具查看和管理。

答案 2 :(得分:1)

  • 尽可能多地打印失败的上下文。包括尽可能完整的错误消息。包括程序或工作流程中的确切位置(例如“输入文件的错误处理行10029”与“错误处理输入文件”)

  • 当数据库查询失败时,请考虑打印格式良好的查询文本(例如,Sybase错误通常只包含错误的部分查询)

  • 使用具有良好格式的日志工具,包括标记INFO / WARN / ERROR(或日志消息级别)的功能,以便轻松使用

  • 使用具有良好时间戳功能的日志工具。

  • 如您所述,请考虑数量。节流或捆绑消息。

答案 3 :(得分:1)

我们对重复邮件进行速率限制。我们使用类似syslog的类别&amp;优先级层次结构,默认情况下,仅记录指示警告及以上的消息。

如果事情向南,我们可以加快该组件的日志记录,直到我们解决它为止。

答案 4 :(得分:0)

  • 不记录密码!
  • 如果它是可行的,如果故障是,请尽量避免重复相同的消息 记录了很多次,直到系统从中恢复。只需记录类似“x类型的错误,从timestamp1到timestamp2发生n次”之类的内容。
  • 不要永远保留日志,实施轮换策略(可以基于文件大小或时间段)。
  • 以一致的方式针对不同情况使用不同级别的日志。

答案 5 :(得分:0)

记录有关输入事件的足够详细信息,您可以在调试/测试期间再次运行完全相同的事件序列。但是,你必须使用一些常识。除非您有理由相信一系列鼠标移动事件会导致问题,否则记录每个鼠标移动事件可能都是过度杀伤。