有没有人真的使用WARN作为日志记录级别?

时间:2011-02-02 12:14:48

标签: logging

对于警告而不是错误而言,分配不同级别似乎有点过分。如果一个值是错误的,那么它的错误则不然。我个人认为这种模糊决策使得代码难以理解,因为一个人不知道什么是可接受的有效输入。如果您不接受废话并抛出异常,那么hyour代码可能会更好,完全不需要警告。

还有许多其他级别可以获得更多可能更适合自己级别的日志记录 - 比如“config”。然而,最终似乎大多数框架已经解决了错误,警告,信息,调试和跟踪变化。

那么警告是如何生存的,其他级别没有?

4 个答案:

答案 0 :(得分:6)

对于我所使用的软件,我使用以下区别。

  • 错误:程序无法执行请求执行的操作。如果程序无法按照要求执行操作,则需要输出错误消息。
  • 警告:程序检测到奇怪的内容,这并不妨碍它执行请求执行的操作。程序可能,但不是必需,以输出奇怪情况的警告消息。

似乎others do likewise

例如,假设一个配置文件包含程序要检查的位置列表,该列表可能为空但实际上从不为空。

  • 如果配置文件的格式不正确,程序将报告错误消息,因为它无法确定您希望它执行的操作,因此无法执行您想要的操作。
  • 如果配置文件没有列出任何位置,它可能会报告警告,因为虽然在这种情况下它可以正确检查没有位置(也就是说,没有任何用处),但很可能是用户在事实上,系统配置不正确。

答案 1 :(得分:1)

我使用过警告:

  1. 来自同一客户端的多次失败登录尝试。不是错误,登录系统可以处理它,但有时人们想知道这些尝试。 (可能正在发生攻击,也许客户需要帮助等)。
  2. 输入技术上没有危险但可能需要手动监督的数据(用户在儿童友好网站上提交可能的粗言秽语等)。
  3. 流程花费的时间比预期的要长。没有错误,但支持团队希望了解它。

答案 2 :(得分:1)

不同的日志级别很有用,因为开发人员希望在不同的时间实现不同的事情,即查找关键/致命错误(ERROR)的原因,或维护程序并确保它正在执行预期的操作(WARN )。

错误意味着程序/子程序根本无法继续,这可能代表了在用户继续执行任务之前需要修复的关键错误。

WARN意味着开发人员不希望程序这样做,但该程序仍可满足用户要求。开发人员应定期检查日志以查找WARN以确定是否需要进行更改(它们可能表明将来会出现问题)。理想情况下,应该没有触发任何WARN - 它们是开发人员改变某些事情的行动呼吁。

答案 3 :(得分:0)

当输入/数据有效且可接受时,我使用WARN级别,但可能不适合当前的应用程序状态,因此如果我必须检查有关问题的日志,我会注意到数据存在潜在问题。