本文适用范围:Linux系统
使用语言:C/C++
打log的原则
1、异常分支或错误处理一定要打log
2、重大操作时一定要打log,下面打log场景会讲述
log格式的原则
1、时间戳必须有,最好能够精确到微秒。精确到秒的时间戳,相信很多人都熟悉,这能够确认问题的时间和系统uptime的对比,能够进一步还原问题的场景。
至于到微秒,在多线程程序下,如果进程停止响应,可以从日志时间看是否死锁。
一般格式:
2、打log位置的文件名和代码行数。这个不用说,用于定位问题根源。其实最重要是防止扯皮。因为程序员大多喜欢copy-paste,如果你不加文件名和行数,某程序员copy了你的代码,修改了点,出错了,到时候把你拉下水。
一般格式:
3、有进程id。有些log机制在进程重启时,不会重新生成一个日志文件,而是直接在同一个日志文件后面添加日志。或者,有时候同一程序的多个进程同时运行,可能也会写入到同一个日志文件。
一般格式:
4、有线程id。在多线程程序,如果不加线程id,很难追溯程序的行为
一般格式:
5、有日志的级别。日志是反映问题的,有不同紧急程序的问题,自然有不同的日志级别。一般采用Error,Warning,Info,Debug。定义不同级别