作者:朱金灿

      一般来说桌面软件以单机单进程的方式运行,在调试程序时可以方便地进行单步调试。而并行处理系统往往以多机多进程的方式运行,一旦出错对于如何定位错误所在成了一件棘手的事情。这时日志调试成为定位错误的有效手段。下面谈谈如何设计日志可以方便地定位错误。

 

        首先是日志文件的命名,最初的命名是采用软件名字.log。发现这样做最新的日志总是把老日志覆盖了,显然这样是不行的。要想新的日志不覆盖旧的日志,就采用了日期时分_GUID.log的命名方式。日期时分可以确定日志是是啥时候生成的,GUID确保新日志不覆盖旧日志。

 

        其次是日志信息的分级。现在我将日志分为:信息和错误两级。信息这一级是为了输出相关的信息;错误级是为了记录出错的地方。以前看到有些软件的日志信息分为多级:信息、警告、一般错误和严重错误。我感觉并无太大必要。这里要具体说下日志要记录哪些内容呢?我想大致是:日志的分级标签、日志产生时间、对应的源码文件和行号、具体的输出信息。比如日志信息分为两级,分级标签可以是info和error。增加分级标签是为了方便日志分析工具来分析日志。

 

       三是日志分析工具。为什么需要日志分析工具?因为随着系统运行时间越来越好长,形成很多日志文件和日志记录,单靠人眼是找不到出错的地方,只有借助软件进行自动化分析。下图是我设计的一个简单的日志分析工具:

略论并行处理系统的日志设计_多进程

这个可以查询某一时间段产生的某一类的日志(比如错误日志或一般的信息输出日志)。