admin 管理员组文章数量: 1184232
2024年3月11日发(作者:通配符和分别代表什么)
日志规范
目录
1
2
3
4
5
6
文档目的 ................................................................................................................................... 2
日志书写格式 ........................................................................................................................... 2
日志记录语言 ........................................................................................................................... 2
日志级别 ................................................................................................................................... 2
日志保存形式 ........................................................................................................................... 3
日志记录原则 ........................................................................................................................... 3
6.1 FATAL ........................................................................................................................... 3
6.2 ERROR ......................................................................................................................... 4
6.3 WARNING .................................................................................................................... 5
6.4 INFO ............................................................................................................................. 5
6.5 DEBUG ......................................................................................................................... 6
1 文档目的
日志记录规范主要目的是节省工作量,帮助对问题进行诊断。最终,终端用户可以获得
更好的应用程序,并能从技术支持团队获得迅速的响应。
2 日志书写格式
日志记录的头部分的组成结构是:
〔日志级别〕+〔时间戳〕+〔源文件名、函数名、行号〕+(日志内容)
实例:$DEBUG 2013-10-16 03:33:27.797 tus()-[1350] comPath = [/dev/ttyS6] , tpuStatus = [0x00]
3 日志记录语言
日志采用英文记录,尽量采用规范化的描述文本。
4 日志级别
日志通过级别(Level)可以输出日志的重要程度,便于控制日志输出的多少。
日志包括如下5个级别:
1) FATAL
开发标准:系统发生严重故障而无法提供服务
运营标准:需要立刻报警
例如:系统启动端口绑定失败、配置文件无法找到、系统资源申请失败等
2) ERROR
开发标准:系统发生错误,部分功能异常,影响服务质量,但系统可以继续运行
运营标准:需要立刻报警
例如:必选配置项读取失败,但可以通过系统默认参数运行
3) WARNING
开发标准:系统发生不希望行为,但基本不影响服务,或基本可以很快自动恢复,
默认情况下打印出来
运营标准:每天汇总进行报警
例如:不在服务ip白名单内的非法请求、tcp长连接的超时断开(超时后系统会完
成重连)等
4) INFO
开发标准:系统正常工作状况相关信息或系统相关参数信息,默认情况下打印出来
运营标准:暂无
例如:“系统开始启动”、“开始数据加载”、“系统加载配置文件时读取到的配置内
容”、“Updater收到前端报文请求连接”等
5) DEBUG
开发标准:开发调试信息,默认情况下不会打印出来
运营标准:暂无
例如:暂无
5 日志保存形式
日志保存采用以下原则:
1) 各进程单独记录日志
2) 各通信模块的通信日志采用单独文件记录
3) 主业务和维护业务分开记录
SLE的部分日志文件及命名如下:
序号
1
2
3
4
5
6
7
8
9
10
11
12
13
14
日志文件名
创建者
SleCore
SleCore
SleCore
SleComm
SleBoot
TvmPassenger
SleOperator
SleCore
SleCore
SleCore
SleCore
SleCore
SleCore
说明
记录TVM主业务的执行过程
记录AG主业务的执行过程
记录BOM主业务的执行过程
记录SleComm的运行情况
记录SleBoot的运行情况
记录TvmPassenger的运行情况和乘
客操作记录
记录站员操作记录
记录SLE维护维修业务的执行过程
记录硬币单元的通信日志
记录纸币单元的通信日志
记录车票发行单元的通信日志
记录TPU单元的通信日志
记录车票回收单元的通信日志
6 日志记录原则
6.1 FATAL
1) 对象创建失败
例:Create object fail: [对象名称]
2) 系统资源申请失败
例:Create file fail: [文件名称]
sem_init fail: [信号量名称]
3) 内存分配失败
例:Memory alloc fail: [new 4096 bytes]
Memory alloc fail: [malloc 4096 bytes]
4) 重要系统功能调用失败
例:System function call fial: [函数名] [参数=?] return [返回值]
5) 配置文件缺失
例:file losed: [文件名]
6) 软件设计类异常
a) 调用函数的输入参数超出设计范围
例:Function parameter error: [参数名=?]
b) 程序流程超出设计范围
例:Program flow error
c) 变量值超出设计范围
例:Design error: [变量名=值]
7) 进程崩溃
例:Process breakdown: [进程名]
6.2 ERROR
1) 硬件故障
例:Coin unit error: comm connect fail
Bill unit error: errno = ?
2) 参数缺失或错误
例:System parameter losed: [参数名]
3) 硬件资源异常(串口资源、磁盘空间)
例:Disk will full: used [?%]
4) 重要API调用失败
例:Function call fial: [函数名] return [返回值]
6.3 WARNING
1) 硬件警告
例:Bill unit waring: errno = ?
2) 操作员非法操作
例:Staff operate invalid: [操作项]
3) TCP长连接超时断开
例:TCP connect timeout
4) 一般API调用失败
例:Function call fial: [函数名] return [返回值]
6.4 INFO
1) 系统启动和退出
例:Process [进程名] boot…
Process [进程名] exit…
2) 初始化各个阶段的开始和完成
例:Init [模块名称] begin…
Init [模块名称]end.
3) 退出前释放资源各个阶段的开始和完成
例:Free [模块名称] begin…
Free [模块名称]end.
4) 重要函数的进入和返回
例:Function entry: [函数名称]
Function exit: [函数名称]
5) 重要函数的参数值和返回值,参数值日志在函数体类记录,返回值在调用处记录
例:Function [函数名称] parameter: [参数名=值]
Function [函数名称] return value: [出参=值]
6) 线程的启动和退出
例:Thread [线程名] boot…
Thread [线程名] exit…
7) 重要的参数值(系统参数、配置参数)
例:Systen parameter: [参数名=值]
8) 硬件模块返回的重要的数据值(卡号、投入金额、找零数据、清空数据、寄存器数
据等)
例:Tpu info: card ID = ?; stroed value=?
9) 硬件模块关键操作的返回结果(提票结果、搬运结果、回收结果、压箱结果等)
例:Function [函数名称] return value: [值]
10) 用户登录、操作记录
例:User operate log: [操作项名称]
User login: [op id = ?]
User logoff: automatic
6.5 DEBUG
1) RS232通信报文日志
例:S: 05 12 8B 36 5A
R: 05 12 7E 6F
S: wor>
2) 网络通信报文日志
例:S: 05 12 8B 36 5A
R: 05 12 7E 6F
3) 进程间或进程内通信报文日志
例:IPC [发送者] to [接受者]: 05 12 8B 36 5A
IPC [接受者] R: 05 12 7E 6F
4) 在进行数据库操作时,以DEBUG的级别输出执行的SQL词句,对于取回的结果,
最好是能打印出所有构造完成的对象的信息。
例:SQL: select …
5) 对程序中需要检查运行性能的地方,以DEBUG记录下运行耗时。
例:Tpu ReadCard time: ?ms
版权声明:本文标题:基于log4cpp的日志记录规范 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1710141967a559296.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论