log书写规范

来源:互联网 发布:全国地址数据库 编辑:程序博客网 时间:2024/06/05 23:53

日志目的

  1. 问题追踪:在程序调试时,通过日志追踪程序的bug,也可在用户发现bug后,通过日志对问题进行分析和定位。
  2. 状态监控:通过日志可查看系统的运行状态,做到发现和定位问题。
  3. 安全审计:通过对日志进行分析,可发现是否存在非授权的操作。

日志类型

  1. 安全类信息:记录系统边界交互行为和信息。
  2. 业务类信息:记录系统内部业务处理行为和信息。
  3. 性能类信息:记录系统硬件对业务处理的支撑能力。

日志级别

  1. ERROR(错误):已经影响到系统正常运行,并且系统不能自行恢复到正常的运行状态的问题。
  2. WARN(警告):系统一般模块存在问题,不影响系统运行。
  3. INFO(通知):系统运行期间的系统运行状态变化,或关键业务处理记录等用户或管理员在系统运行期间关注的一些信息。
  4. DEBUG(调试):最详细的记录,一般为系统执行过程,以及函数参数和返回值等信息,主要用于协助程序员开发。
  5. TRACE(跟踪):类似debug,一般很少使用。

日志输出内容

  1. ERROR:错误的简短描述,和该错误相关的关键参数,如果有异常,要有该异常的StackTrace。
  2. WARN:告警的简短描述,和该错误相关的关键参数,如果有异常,要有该异常的StackTrace。
  3. INFO:言简意赅地信息描述,如果有相关动态关键数据,要一并输出,比如相关ID、名称等。
  4. DEBUG:简单描述,相关数据,如果有异常,要有该异常的StackTrace。
       在日志相关数据输出的时要特别注意对敏感信息的保护,比如修改密码时,不能将密码输出到日志中。

log书写规范

  1. 对于可以预见的多数情况下单例运行的class,可以不添加static前缀;对于可能是多例居多,尤其是需要频繁创建的class,我们要求要添加static前缀。
  2. 系统启动的参数、配置、环境变量、System.Properties等信息对于软件的正常运行至关重要,这些信息的输出有助于安装配置人员通过日志快速定位问题,所以程序有必要在启动过程中把使用到的关键参数、变量在日志中输出出来。在输出时需要注意,不是一股脑的全部输出,而是将软件运行涉及到的配置信息输出出来。
  3. 函数开始与结束添加log,方便查看程序运行流程。
  4. 函数传入参数与返回参数使用log打印,方便查看参数是否传递错误。
  5. log中含义不清晰数据(如:单纯的数字等)可转换为能表达含义的字符串进行打印。
  6. log格式统一,如大小写,同一数据名称等。
  7. log分级别打印,方便调试与查看。

本文是通过网上一些资料整理汇总,以及自己的一些经验完成,如有不足之处请指正。

本文仅供参考和学习!

原创粉丝点击