啰唆的的日志会打断你的睡眠
当我遇到一个已经开发或者运营了一段时间的系统时,最开始真正的问题往往都是脏日志。你知道我说的是什么。每当正常流程中点击一个链接就会导致系统出现洪水泛滥般地消息。太多的日志可能和没有日志一样毫无作用。如果你的系统像我的一样,当你的工作结束时,其他某人的工作才刚刚开始。当系统开发完成,希望它能长时间地、成功地服务客户,如果你足够幸运的话。你如何知道系统在产品阶段是否出了什么问题,以及如何处理呢?
也许有人会帮你监控系统,或许你自己监控。不管怎样,日志都是监控的一部分。如果出现什么问题,而且你需要被叫醒来处理的话,你肯定希望这是有足够的理由的。如何系统要死掉了,你想要了解情况;但如果只是一个小问题,那么我更愿意享受良好的睡眠。
对于很多系统来说,出现问题的最初征兆就是日志中记录了一些错误的消息。大多数时候,这就是错误日志。所以给自己帮个忙吧:确保从第一天起,如果有什么东西写到错误日志中,你就会愿意因它在半夜被叫醒。如果你可以在系统测试中,自己在系统中模拟,没有杂音的日志也是系统健壮的最初的征兆;不然的话,就是最初的警告。
分布式系统增加了另一层的复杂度。你需要决定如何处理一个外部依赖的失败。如果你的系统分布性很强,这可能就是家常便饭了。确保你的日志策略会考虑到这一点。
总地来说,一切正常的最好表现便是最低优先级的消息都一直保持正常。我想对每个程序的重要事件都有一个INFO级别的日志。
杂乱的日志表明当系统产品化时,它将很难控制。如果你不期望什么都在错误日志中显示出来,当错误日志中确实出现了一些问题时,就更容易知道该做什么了。
原文:Verbose Logging Will Disturb Your Sleep by Johannes Brodwall