首先谈谈日志生成机制,以下所谈内容适用运行于Unix操作系统的应用程序;
一、日志生成规则
1、可以限制单个日志文件的最大文件大小(一般32M~64M)。
2、日志系统应能够分级显式,为4个级别:ERROR、WARN、MESSAGE(或INFO)、DEBUG;ERROR优先级别最高,DEBUG优先级别最低;优先级别比配置输出级别低的日志信息不输出(假设配置输出级别为ERROR,则WARN、MESSAGE、DEBUG级别的日志均不会输出)。不同级别的日志信息均在同一个文件内输出。
3、可控制输出到控制台或文件或两者都输出。
4、具备自动清理功能开关,可以自动删除过期的日志文件,过期时间可以配置(如6个月,则系统定期清理6个月前的日志)。
日志输出级别原则:
DEBUG信息包括:收发socket包的二进制或文本信息、关键点的打印信息、SQL语句信息等调式信息。
MESSAGE信息包括:程序正常启动、链路连接、能体现完整业务流程的所有消息包(如各个接口的收发消息包、消息包在内部的流转过程)
WARN信息包括:不影响业务逻辑的异常,如客户端重复登陆,数据库重连等信息。
ERROR信息包括:影响业务正常开展的严重错误,如程序退出,数据库链路异常、用户数据格式非法等。
二、日志输出规则
日志文件输出路径:
$HOME/logs/<项目名称(可选)>/模块名称/年/月/日/文件名_时_分_秒.log
日志输出内容格式:
[时间] [级别] <日志输出位置(可选)> <进程或线程号(可选)> :日志内容
实现代码如下:
1、 ffcs_logger.cpp
2、ffcs_logger.h
3、main.cpp
4、config.cfg