开发程序时,记录运行状态对于调试非常重要,从最简单好用的printf(),到VC++环境提供的TRACE宏,都是开发者的得力助手。其实打印记录程序运行状态的重要性还应该更加重要,不仅开发时,而且在部署完毕运行时,也要把运行状态通过日志文件展现出来,以便于跟踪排查错误。看看现在大型的软件如Tomat,Oracle,IIS,无不提供了日志功能。可测量跟踪成为了软件健壮的重要标志。
1 基本思路
对于开发者来讲,不仅需要记录程序的状态,还要记录对应的源代码位置,记录的时间等。对于这些通用的记录项,就应该尽量自动的去完成,从而避免繁琐的日志代码,为此我开发了一个非常简单的C++日志类来完成这个工作。
为使用更加简单,全部日志功能通过一个宏定义导出,使用者只需 LOG(L"记录内容"); 即可,最终这个宏会自动把源文件位置,记录时间,连同日志一起作为一行写入日志文件。需要注意,字符编码全部要求是UNICODE编码。
2 代码实现
#pragma once
/*
日志记录类
功能描述:
根据当前时间自动生成日志文件名,自动记录日志到日志文件。
日志文件名格式(样例):
20141219211252255.log
日志内容格式(样例):
2014年12月19日11时52分55秒,源文件:e:\work\udptest\udptestdlg.cpp,第109行, 这里是要写的日志内容
使用方式:
此类采用单例模式设计