有不同的方式记录消息,按死亡顺序排列:
致命的错误警告信息调试,调试跟踪
我如何决定何时使用哪个?
什么是好的启发式方法?
有不同的方式记录消息,按死亡顺序排列:
致命的错误警告信息调试,调试跟踪
我如何决定何时使用哪个?
什么是好的启发式方法?
当前回答
国庆节,
作为这个问题的必然结果,沟通您对日志级别的解释,并确保项目中的所有人都对级别的解释保持一致。
看到各种各样的日志消息,其中的严重性和所选日志级别不一致,这很痛苦。
如果可能,请提供不同日志记录级别的示例。并且要在消息中记录的信息保持一致。
HTH
其他回答
错误是一种错误的东西,很明显是错误的,没有办法解决它,它需要被修复。
警告是一种模式的信号,这种模式可能是错误的,但也可能不是。
话虽如此,但我无法提出一个警告的好例子,这不是一个错误。我的意思是,如果您遇到了记录警告的麻烦,那么不妨解决根本问题。
然而,像“sql执行时间过长”这样的情况可能是一个警告,而“sql执行死锁”是一个错误,所以可能毕竟存在一些情况。
我一直在考虑警告第一个日志级别,这肯定意味着存在问题(例如,可能配置文件不在应该的位置,我们将不得不使用默认设置运行)。对我来说,一个错误意味着软件的主要目标现在不可能实现,我们将尝试彻底关闭。
我建议采用Syslog严重级别:调试、信息、通知、警告、错误、严重、警报、紧急。看见http://en.wikipedia.org/wiki/Syslog#Severity_levels
它们应该为大多数用例提供足够的细粒度严重性级别,并被现有的日志解析器识别。当然,您可以根据应用程序的要求,自由地只实现一个子集,例如调试、错误、紧急情况。
让我们对已有多年的应用程序进行标准化,而不是为我们制作的每个不同应用程序制定自己的标准。一旦您开始聚合日志并尝试检测不同日志之间的模式,这将非常有用。
国庆节,
作为这个问题的必然结果,沟通您对日志级别的解释,并确保项目中的所有人都对级别的解释保持一致。
看到各种各样的日志消息,其中的严重性和所选日志级别不一致,这很痛苦。
如果可能,请提供不同日志记录级别的示例。并且要在消息中记录的信息保持一致。
HTH
我的两分钱关于致命和跟踪错误日志级别。
ERROR(错误)是指发生某些FAULT(异常)时。
致命实际上是双重故障:在处理异常时发生异常。
web服务很容易理解。
请求来了。事件记录为INFO系统检测到磁盘空间不足。事件记录为警告调用某个函数来处理请求。当处理被零除时。事件记录为ERROR调用Web服务的异常处理程序来处理除以零的操作。Web服务/框架将发送电子邮件,但无法发送,因为邮件服务现在处于脱机状态。第二个异常无法正常处理,因为Web服务的异常处理程序无法处理异常。调用了不同的异常处理程序。事件记录为致命
TRACE是我们可以跟踪函数入口/出口的时间。这与日志无关,因为此消息可以由某些调试器生成,而您的代码根本没有调用日志。因此,非来自应用程序的消息被标记为TRACE级别。例如,使用strace运行应用程序
因此,通常在程序中,您会进行DEBUG、INFO和WARN日志记录。只有当你正在编写一些web服务/框架时,你才会使用FATAL。当您调试应用程序时,您将从这种类型的软件获得TRACE日志记录。