印象深刻的几段:
1. Greppable Logs
如果日志不能很好地被grep, 当然还包括被sort,被awk,被sed,那就是垃圾。错误日志除外,错误日志是给人看的。
2. Timestamps
为什么秒这个级别不够? 没有一个日志系统可以保证日志的顺序和事件发生的顺序一致,当系统负载较重时,期间相差ms这个级别是常事,因此秒级的Timestamp就无法再通过sort来恢复原先的顺序了。(Log4j中记录的时间是事件发生的时间,并非落地时间)
3. Always Log To Local Disk
不要亲信网络。老老实实地先将日志输出到本地,再通过其他方式来集中。第一,可靠!硬盘上的数据才是最忠实的数据。 第二,方便!一些小的即插即用的统计可以就地就行。
4. Programming with log4j
EVERY CLASS must contain this line:
private static Logger log = Logger.getLogger( MyClass.class )
不要在专门的包里去定义一个专门的Log,然后到处复用,这样做就无法再根据包名来控制日志的级别了。而这,是一个非常有用的功能,避免一段程序在运行时要么全debug,要么全info。