作者:朱金灿
来源:http://blog.csdn.net/clever101
桌面软件的底层日志主要采取文本文件的方式,主要存在一些缺点:一是日志文件散乱,不方便管理;二是缺乏有效的日志分析工具。
为此需要改变原来的以文本文件充当日志文件的做法,改用sqlite数据库文件来充当日志文件。采用sqlite数据库文件充当日志文件,一是可以只采用一个日志文件,二是可以开发相关的日志分析工具。特别是在并行处理系统中,日志是一种重要的调试手段。基于数据库的分析工具毫无疑问要比基于文本文件的分析工具更为强大。
采用sqlite数据库文件充当日志文件,需要设计一个日志表。日志表的结构如下:
字段名(英文名) | 意义 | 类型 |
日志记录ID(record_id) | 采用GUID实现 | 字符串 |
日志等级(log_level) | 划分为两个等级: 1. info —— 信息提示 2. error —— 错误提示 | 整型 |
日志写入时间(write_time)
| 年月日时分秒,如:2016:7:7 10:49:34 | 时间类型 |
输出日志的代码具体位置(code_pos)
| 包括文件名、行号及函数,如: File:"e:MyprojectsrcutilityMathLib.cpp"; Line: 10;Matrix:: Matrix: | 字符串 |
日志具体信息(info) | 如:加载xml文件失败! | 字符串 |
操作日志的流程是这样的:日志文件被命名为log.db,放在应用程序文件所在的目录下,当日志文件不存在时,创建这个日志数据库文件,当需要写入日志时插入日志记录。
另外需要针对日志文件开发相关的日志分析工具。