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


本文标签: 日志 记录 系统 标准