日志规范

日志规范

  • 前言
    • 一、日志内容规范
      • 1.根据业务分类
      • 2.根据事件分类
    • 二、日志性质分类
      • 1. error等级
      • 2. trace等级
      • 3.debug、trace、... 等级
      • 4.warn、info 等级
    • 三、汇总分析日志
    • 四、简单明了关键字
      • 1.带动作特性的
      • 2.参数属性的
      • 3 模块的
      • 4 带层级属性的
      • 5 其他

前言

xxx代码规范 比较多,但是xxx日志规范比较少,现在构思一下,打个草稿。
博客转发请注明来源![By Dengleileicn]

一、日志内容规范

我把日志内容分为业务和事件两大类,这两大类可以相互嵌套。

1.根据业务分类

  1. 运行环境日志。 比如机器型号,版本,驱动版本,期间类型等等。
  2. 运行系统监控日志。系统运行状态自检日志,电源状态,开关机事件,进程运行状态等等。
  3. 程序A功能日志
  4. 程序B功能日志

2.根据事件分类

  1. 程序保活事件。让别人知道你这个进程或者线程活着的日志,一般都是定时输出的比较大的日志。
  2. 程序定时事件。与保活事件不同,定时事件的目的在于检测任务。
  3. 系统触发事件。系统在某个条件下自动运行的事件,比如检测到电源不足,自我降频等等,属于系统行为的事件。
  4. 用户触发事件。用户使用某个功能产生的事件,比如在网页中输入网址,主动下载了某文件等等。

二、日志性质分类

就是常见的error、warn、info、debug、trace等等。此处继续进一步划分,以规定关键字。

1. error等级

  1. 一般错误。不影响功能和可以继续运行的错误,不影响使用。关键字定义:Error。
  2. 功能错误。影响功能使用的错误,比如用户想使用上网,但是网络断开,connect错误。关键字定义:Fail。
  3. 致命错误。系统环境出问题,或者程序有bug的错误。比如用户想打开窗口,结果窗口打开返回错误。关键字定义:Fatal Fail。

2. trace等级

一般用户常规内容输出,用于程序员debug 进程运行到哪一步。

3.debug、trace、… 等级

一般用于内部测试debug版本,越往下,日志内容输出更加详细。

4.warn、info 等级

商用稳定版本输出日志有限,通过warn得知程序哪些重要的事情发生。而info则作为程序正常运行的过程输出。

三、汇总分析日志

为了方便快捷的找出问题所在,一般要输出汇总分析日志。

  1. report日志。快捷的看出当前使用报告,使用次数,fail次数,xx时间消耗等等。
  2. fail 日志。把所有出现的功能错误或者致命错误输出,让分析人员一言知道问题所在。
  3. csv日志。有的问题需要综合图形分析,比如某个参数的区间分别,时间分布等等。有了数据就可以大数据分析。CPK 是一个常用的指标,计算公式基于正态分布。

四、简单明了关键字

对变量和函数命名很重要,在此整理了一下:

1.带动作特性的

  1. Set/Get
  2. Request/Response/req/resp
  3. Event/Process/
  4. Dispatcher/Handler/Action
  5. add/remove/rm/del
  6. enable/disable
  7. read/write
  8. save/put/push/merge
  9. send/recv
  10. create/start/run/go/complete/finish/over/
  11. update/fresh/
  12. insert/break/interrupt
  13. init/initial/load/
  14. open/close/new/free
  15. loop/cycle
  16. watch/listen
  17. by/for/from
  18. format/pattern/filter/check
  19. hold/wait/sleep/suspend/silent/
  20. lock/block
  21. access/enter

2.参数属性的

  1. result/res/ret
  2. num/count/size/i/index
  3. ready/flag
  4. info/buf/data
  5. value/status/tmp
  6. env/environment/conf/config/cfg
  7. pre/next/last
  8. content/body/head
  9. level/step
  10. active/live/work/fine
  11. ok/pass/normal
  12. fail/error/NG

3 模块的

  1. module/struct/
  2. object/chain

4 带层级属性的

  1. master/root/node/element
  2. father/parent/child
  3. stream/member/group/page/

5 其他

  1. expect/but/
  2. try/again

你可能感兴趣的:(编程规范,程序设计)