[QLog] QLog 日志格式说明

QLog 做为一个日志记录工具,为方便用户跟踪调查问题的原因,对日志做了一些格式约定:

[日志时间][线程ID][日志级别]:日志内容
日志时间是日志记录的起始时间,格式为:

时:分:秒.毫秒

那么年月日跑那儿去了?QLog 在日志记录时,会检测每条日志记录的时间与上一条日志之间是否日期发生了变更,如果发生了变更,会单独追加一行,来记录后续日志的所属日期:

[年-月-日]

然后按正常日志的规则,记录后续的日志内容。

注意一个问题,由于日志可以从多个线程中发送,所以你可能会发现一个奇怪的现象,如下所示:

[10:32:11.009][576][HINT]:这是后发出的一条日志

[10:32:11.002][768][HINT]:这是先发出的一条日志

换句话说,后发出的日志竟然记录到了前面。这在多线程同时频繁记录日志时会偶有发生。问题的根源在于线程 768  创建了日志,但还未加入到需要记录的日志队列时,操作系统将线程切换到了线程 576 去执行,而 576 成功插入了日志,待线程切换回 768 完成后,才插入了日志记录。结果就成了现在呈现的日志状态。也许这会对你分析日志造成一定的困扰,但是同一个线程的日志的顺序是有保证的。所以,这个问题并不影响我们查找问题的根源。

一般我推荐大家用 NotePad++ 或者 PsPad 来查看日志。它们都可以用正则来过滤日志,方便我们查找问题。另外,记日志时,建议自己编写一些额外的规则,方便对其过滤。

 

分享到: