logging - Log4net/日志记录 - 您发现什么有用?

标签 logging log4net

我刚刚开始使用 Log4Net,希望了解您发现什么对您的日志记录体验有用。

您发现哪些类型的内容对记录有用;结果只是噪音;您何时使用不同的日志记录级别(DEBUG、INFO 等);每个日志条目都有标准格式吗?你总是记录一些事情吗?

有什么陷阱吗?关于一般日志记录的好文章?

更新:您在哪里登录?什么是 Appender?为什么?

谢谢!

最佳答案

我的回答基于 Robert Kozak 的出色回答,尽管我并不完全以同样的方式使用我的日志记录

我使用五种类型的日志语句:

  • 调试
  • 信息
  • 警告
  • 错误
  • 致命

DEBUG 语句是当您仍在编写应用程序时以及当您需要完全了解执行流的内容/位置时非常有用的语句。您可以使用 DEBUG 语句来测量锁前面的队列,或者检查登录用户的用户名,甚至是某个有问题的 SQL 调用的参数。 DEBUG 用于通常不需要知道的语句。

INFO 应该在出现问题时使用非常有用的信息,但并不表明出现任何问题。如果你使用太多的INFO语句,你的日志会变得臃肿且无用,所以要小心。 使用 INFO 来获取发生错误时需要的任何关键信息,并且它离抛出错误的位置不远。

如果您检测到可恢复但仍然意外(至少有点预期,因为您发现了它),请使用WARN级别。它表明您的应用程序可能处于无法工作的状态,但您相信您可以在当前执行路径上恢复/继续。

错误警告是在您捕获意外异常时发出的。如果您要恢复/重试当前方法,我建议使用 WARN。如果您要取消/退出,请使用错误。即使您的程序可以继续,错误也意味着您尝试做某事但被拒绝,因此正在继续执行其他操作。

致命适用于当您在远低于抛出位置的高度捕获某物并且您基本上不知道发生了什么时。这意味着您甚至不会尝试继续执行,您只需记录您可以使用的所有可能的信息,然后尝试优雅地退出。 fatal error 很少使用,因为通常如果您捕获错误,您就有足够的信息来尝试并继续执行。但是,如果您尝试继续,可能会发生损坏,请记录 fatal error ,然后逃跑。

<小时/>

至于您要登录的位置。我通常喜欢登录到我的应用程序服务器上的“共享”文件夹(请注意许可,以免它们不公开),以便可以轻松访问日志,并且它们始终是我调试的第一步。 如果可能,请进行设置,以便通过电子邮件发送任何“警告”、“错误”或“致命”错误,以便您获得“高级”警告。

干杯

关于logging - Log4net/日志记录 - 您发现什么有用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/782244/

相关文章:

c++ - 在哪里可以找到适用于 Windows Mobile 的灵活日志记录库?

c# - log4net的线程安全

ssl - Log4Net 是否有支持 TLS 加密的 smtp appender?

java - Google App Engine - 配置默认记录器以发送电子邮件

azure - 使用azure databricks读取azure databricks日志json文件

node.js - Cat 显示日志中没有任何内容( express 服务器)

nhibernate - 为什么 nhibernate 需要 Log4Net?

c# - log4net 紧凑框架 3.5 没有 app.config 来添加文件附加程序

asp.net-web-api - WebApi 2.1 上的 log4net 使用 ExceptionLogger

python - Pyramid 覆盖默认请求日志以添加新参数