logging - 何时使用不同的日志级别

标签 logging conventions

有不同的方法来记录消息,按严重程度排列:

  1. 致命

  2. 错误

  3. 警告

  4. 信息

  5. 调试

  6. 跟踪

我如何决定何时使用哪个?

什么是好的启发式方法?

最佳答案

我通常遵守以下约定:

  • 跟踪 - 仅当我“跟踪”代码并尝试专门查找函数的部分时。
  • 调试 - 对诊断有帮助的信息,而不仅仅是开发人员(IT、系统管理员等)。
  • 信息 - 要记录的一般有用信息(服务启动/停止、配置假设等)。我希望始终拥有可用的信息,但在正常情况下通常不关心。这是我开箱即用的配置级别。
  • 警告 - 任何可能导致应用程序异常的情况,但我会自动恢复。 (例如从主服务器切换到备份服务器、重试操作、丢失辅助数据等)
  • 错误 - 对操作而非服务或应用程序致命的任何错误(无法打开所需文件、丢失数据等)。这些错误将迫使用户(管理员或直接用户)干预。这些通常是为不正确的连接字符串、缺少的服务等而保留的(在我的应用程序中)。
  • 致命 - 强制关闭服务或应用程序以防止数据丢失(或进一步丢失数据)的任何错误。我仅将这些保留用于最严重的错误以及保证数据损坏或丢失的情况。

关于logging - 何时使用不同的日志级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2031163/

相关文章:

conventions - Ninject 3.0 中基于约定的绑定(bind)

elasticsearch - 流利的完整缓冲区无法将日志发送到 Elasticsearch

logging - Elasticsearch 盘空间计算

spring - 类路径包含多个SLF4J绑定(bind)spring boot排除问题

C 中的相互依赖定义

namespaces - 使用 C++/CLI 时的长/复合命名空间

Azure ApiApp 中的 Java 日志记录

sql - 我可以从 JPA 查询对象获取 SQL 字符串吗?

string - to_string 与强制转换为字符串和运算符<<

web-services - 在 JSON 中将缺失值显示为 null 或根本不显示