程序日志级别规范

2020-09-10 19:39:23  卢浮宫  版权声明:本文为站长原创文章,转载请写明出处


一、背景

    最近要规范手上的一些项目,日志这一部分是理所当然要打理的。

所以总结了一些关于级别的一些知识。做一次积累的同时也希望能对其他人有所帮助。


二、关于程序日志级别的简要说明    

    2.1、log4j一共定义了8个级别的日志如下:

        ① ALL: 最低等级,启用后则打开所有的日志记录(一般不做考虑)。

        ② TRACE: 同样是一个级别很低的日志级别(一版不做考虑)。

        ③ DEBUG: 记录一些粒度较细的信息事件,在调试应用程序时有较好的帮助,

            主要用于打印开发过程中的一些运行信息提供故障检测和问题定位。

        ④ INFO: 这个级别的日志多用于在程序正常运行中监控一些行为事件。比如记录程序运行某个阶段的一些重要信息。

        ⑤ WARN:表明会有一些潜在的错误,但是又不影响程序正常执行。比如记录内存、磁盘使用超出一定阈值等。

        ⑥ ERROR: 应用程序在运行中出现了错误事件,无法确定系统是否还能正常运行下去。

        ⑦ FATAL:应用程序出现了重大错误,此级别较高,需要及时停机处理!

        ⑧ OFF:等级最高,关闭所有日志记录


    2.2、关于日志的三个发问:

        ① WHERE: 应该在何处打印日志

        ② WHO:打印什么级别的日志

        ③ WHAT: 日志应包含哪些内容

    

    2.3、WHERE

        ① 程序入口:在这个时候接收到的参数是没有经过任何处理的,那么在这一步进行日志的记录我们就可以检测数据是否符合预期、

            在出现问题时也需要从源头查起,甚至说对这个数据做进一步的操作等。

        ② 异常捕获:在程序异常捕获出打印日志可以让我们快速定位错误是在哪里出现的,以及错误的详细信息。

            特别是系统上线后,没有开发控制台,我们做排查很多程度上都需要依赖日志记录。

        ③重要信息:这一点可以说比较泛泛,我可以在一个系统的关键操作出进行记录,也可以在我比较关心的地方做记录(切记不宜过多)。

    

    2.4、WHO

        ① 上面说了8中日志级别,但是在实际业务中我们更多使用的有如下四个:ERROR、WARN、INFO、DEBUG。

        ② 首先要明确谁在看日志,他想看到什么程度的日志。那么针对上述的四个级别可以分以下场景:

            . INFO:程序主入口用于参数记录以查看入参是否符合预期、计算和操作结果以检测结果是否符合预期。

            . DEBUG:这个级别更多用于辅助开发人员定位问题点。在程序开发时建议使用此级别总览整个过程。

            . WARN:在某个非常规操作处建议使用此,比如一个条件分支800没有一次,突然有了,这个时候要引起注意。

            . ERROR:系统已经出现问题,程序不能正常进行下去的时候使用此级别。比如:删除一个已经有业务关联(已经被锁定)的客户时。


    2.5、WHAT

        日志具体的打印内容就要从实际情况出发了。但是建议包含的有:关键字、模块、参数、内容、结果等。


三、后记

    无论是在做软件开发或是系统上线,日志时一定要做好的。这个看着并没有什么技术含量的东西实则还是有一定学问在里面的。

任何一个技术点都是值得敬畏的。吾生也有涯而知无涯!共勉...




更多精彩请关注guangmuhua.com


最新评论: