Board logo

标题: 如何定义日志消息的级别?详解日志的5个级别-1 [打印本页]

作者: look_w    时间: 2019-3-14 19:25     标题: 如何定义日志消息的级别?详解日志的5个级别-1

日志级别如何划分?

日志记录是软件开发的一个概念,几乎所有(可能并不是所有)软件都能从日志记录中获得很多好处。在开始一个大项目时,日志记录通常是我第一个要搭建的子系统。关于它的好处,我可以说出一大堆,但我想把这个机会留给其他人(或者哪一天我想说了再说)。现在,我想说一说日志级别。

日志级别是对基本的“滚动文本”式日志记录的一个重要补充。每条日志消息都会基于其重要性或严重程度分配到一个日志级别。例如,“你的电脑着火了”是一个非常重要的消息,而“无法找到配置文件”的重要等级可能就低一些。

很多应用程序和库会根据自己或用户的需求定义自己的日志级别(参考文末的“外部例子”了解这方面的内容)。当然,并没有一种约定俗成的方法来做这件事,想怎么做都是可以的,但我想要说说我认为的最重要的五个(或者六个,或者四个)日志级别,它们应该是你自定义日志级别的基础。

我还将讨论给这些级别分配的颜色(或者说风格),因为带有不同颜色(或风格)的日志更容易追踪。如果采用了这样的系统,就可以很容易检查你的程序状态,就算没有受过训练的人也可以轻易分辨。谁知道呢,你可能留下电脑跑去吃午饭了,如果出现问题只能找别人来查看日志。
Error

错误已经发生了,这是毫无疑问的。错误的来源可能是在外部,但不管怎样都需要看一下是怎么回事。

可以用这个级别来表示需要引起人们注意(大多数时候需要采取行动)的错误。大多数难以优雅处理的异常都属于 Error 范畴。

风格:能引起人们注意的东西。我使用红色文本来表示(我的终端背景是黑色的)。

例子:

    无法找到"crucial.dat"文件
    错误的处理数据:<Exception>[堆栈追踪或后续的调试消息]
    <Exception>在连接数据库时在连接数据库时

Warn

错误有可能已经发生了。我只是一条日志消息,无法分析到底发生了什么,或许需要其他人来看看是不是有问题。

这可能是一个平行空间里的错误。它可能是当前或未来潜在问题(比如响应速度慢、连接断开、内存吃紧等等)的预兆,也可能是程序在处理某些任务时出现错误(但可能不一会再发生类似的情况)。

风格:能引起人们注意但又不会让人感到厌烦的风格,以免你在解决其他问题时没空来处理这些错误。与 Error 的风格不同,我使用黄色的文本来表示 Warn。

例子:

    连接关闭,在 2 秒后重新连接
    无法找到"logging.conf"[在配置文件中指定的],回到默认配置
    30 秒后尝试连接超时
    出现 FileVersionTooOldException 异常,回到 Version12Parser

Info

通知用户一个操作或状态发生了变化。别紧张,继续手头的活。

Info 可以说是(一般的非技术)用户可以接触到的最“啰嗦”的日志级别。如果有人把它们大声念给你听,你也不会介意,这是你最乐于见到的日志记录。它不会包含很多技术细节,可能只包含普通用户会关注的信息(比如文件名等)。

风格:可以和背景颜色区分开来,我使用白色文本。

例子:

    代理初始化完毕
    加载存档"yeti02"
    进入高速模式
    当前目录是"/tmp"
    上行线路已建立
    渲染完成,耗时 42.999 秒




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0