日志等级

在不同的版本中日志的分级也有区别,下面以日志记录器Logger的分类来进行讨论

六个日志等级:TRACE / DEBUG / INFO / WARNING / ERROR / FATAL

还有两个特殊等级 ALL、OFF,全部日志打开和关闭,这里不做讨论

TRACE

TRACE 在线调试。
该级别日志,默认情况下,既不打印到终端也不输出到文件。此时,对程序运行效率几乎不产生影响。

DEBUG

DEBUG 终端查看、在线调试。
该级别日志,默认情况下会打印到终端输出,但是不会归档到日志文件。因此,一般用于开发者在程序当前启动窗口上,查看日志流水信息。

INFO

INFO 报告程序进度和状态信息。
一般这种信息都是一过性的,不会大量反复输出。
例如:连接商用库成功后,可以打印一条连库成功的信息,便于跟踪程序进展信息。

WARNING

WARNING 警告信息
程序处理中遇到非法数据或者某种可能的错误。
该错误是一过性的、可恢复的,不会影响程序继续运行,程序仍处在正常状态。

ERROR

ERROR 状态错误
该错误发生后程序仍然可以运行,但是极有可能运行在某种非正常的状态下,导致无法完成全部既定的功能。

FATAL

FATAL 致命的错误
表明程序遇到了致命的错误,必须马上终止运行。

日志输出的注意事项
1、日志函数的返回值
日志函数的返回值一般用于错误的标识,一般为int类型的错误码,因为一个程序出错情况不止一种,故不建议使用bool类型
正确情况:一般约定正常情况函数的返回值为0;在不同的约定下有可能不同,例如:有多种正确的状态,不过大多数情况下返回值为0。
错误情况:返回值小于0,建议对可预期的错误进行编码,避免所有错误千篇一律-1,后续查错困难
对于错误的情况需要记录相关的错误日志

2、如何对日志形式进行选择
日志有六大类,根据每一类的日志的特性,我们需要在合适的时候选择相应的日志类型
考虑的因素:
1)输出频率
对于输出频率高的日志,一定要用TRACE级别,否则会严重的影响程序效率
TRACE级别的日志不会输入到日志文件中,如果该类日志输出频率高,使用其他级别,日志文件很快会被写满覆盖。
在for循环或者while循环中的日志,一定要使用TRACE级别。
2)严重程度
执行错误信息:该情况下书写日志需要用WARNING级别及以上的ERROR、FATAL日志打印。这类级别的日志会记录到日志文件中,方便查找问题,解决问题。
非执行错误信息: 如调试、追踪等日志信息,一定采用INFO级别以下的DEBUG、TRACE日志打印 。
INFO级别只适用于输出频率不高的情况或者需要记录到日志文件中,便于问题追忆的需求。

日志信息的内容
1)异常、错误信息
ERROR、WARNING等
2)调试、跟踪信息
函数参数读入、执行步骤、数据流向,流程跳转、函数返回值

对于错误、异常情况,应尽量记录尽可能多的“上下文环境”信息.
如果是函数调用失败,日志中必须包含返回值信息、以及函数调用的相关参数信息。
任何程序在返回错误码前,一定要通过日志记录具体的错误原因,并给出尽量多的场景信息。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值