桌面软件底层日志的一种改进设计
2016-07-20 15:38
197 查看
作者:朱金灿
来源:http://blog.csdn.net/clever101
桌面软件的底层日志主要采取文本文件的方式,主要存在一些缺点:一是日志文件散乱,不方便管理;二是缺乏有效的日志分析工具。
为此需要改变原来的以文本文件充当日志文件的做法,改用sqlite数据库文件来充当日志文件。采用sqlite数据库文件充当日志文件,一是可以只采用一个日志文件,二是可以开发相关的日志分析工具。特别是在并行处理系统中,日志是一种重要的调试手段。基于数据库的分析工具毫无疑问要比基于文本文件的分析工具更为强大。
采用sqlite数据库文件充当日志文件,需要设计一个日志表。日志表的结构如下:
操作日志的流程是这样的:日志文件被命名为log.db,放在应用程序文件所在的目录下,当日志文件不存在时,创建这个日志数据库文件,当需要写入日志时插入日志记录。
另外需要针对日志文件开发相关的日志分析工具。
来源: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:\Myproject\src\utility\MathLib.cpp"; Line: 10;Matrix:: Matrix: | 字符串 |
日志具体信息(info) | 如:加载xml文件失败! | 字符串 |
另外需要针对日志文件开发相关的日志分析工具。
相关文章推荐
- 页面加载完某个函数不工作 选择器也没错
- Android端应用秒开优化体验
- 以写代学:python 模块简介&输出用户指定位数密码的脚本
- Linux/Unix 判断一个路径是目录还是文件
- 希尔排序算法
- 多行文本字段运行时展示成单行文本
- java_opts 参数
- 线程范围内共享变量使用ThreadLocal类详细方法
- 第一天-HTML5新增部分标签
- 进制之间的转换 Java
- 面试题46:求1+2+ …… +n
- 李洪强iOS开发之使用CycleScrollView实现轮播图
- rem
- mongoDB嵌套查询
- maven ArtifactTransferException: Failure to transfer
- 334. Increasing Triplet Subsequence
- TCP(一 协议)
- 富文本的处理 时间控件的处理
- mysql 添加索引
- 关于md5的加密和解密的一些好的文章以及软件下载地址