首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Log4net/Logging -你发现什么是有用的?

Log4net/Logging -你发现什么是有用的?
EN

Stack Overflow用户
提问于 2009-04-23 15:24:38
回答 8查看 3.1K关注 0票数 27

我刚刚开始使用Log4Net,我想看看您在日志记录体验中发现了哪些有用的东西。

你发现哪些类型的东西对日志有用;什么东西最终只是噪音;你什么时候使用不同的日志级别(调试、信息等);你有没有每个日志条目的标准格式;有没有你总是记录的东西?

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

更新:你会登录到哪里?什么附加者?为什么?

谢谢!

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2009-04-23 17:10:23

我的回复是基于Robert Kozak的优秀回复,尽管我并不是以同样的方式使用我的日志

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

  • DEBUG
  • INFO
  • WARNING
  • ERROR
  • FATAL

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

INFO应该在任何时候使用,这些信息在出现错误时非常有用,但并不表示出现了任何错误。如果您使用太多的INFO语句,您的日志将变得臃肿和无用,所以要小心。使用INFO来获取错误时需要的任何关键信息,并且它不会靠近抛出错误的位置。

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

每当您捕获意外异常时,都会发出ERROR警告。如果您正在恢复/重试当前方法,我建议您使用WARN。如果您要取消/退出,请使用错误。即使你的程序可以继续,错误意味着你正在尝试做一些事情,但被拒绝了,因此正在转移到其他事情上。

当你在远远低于抛出位置的地方捕捉到一些东西,而你根本不知道发生了什么时,就可以使用FATAL。这意味着您甚至没有尝试继续执行,您只是要记录您可以支配的每一个可能的信息,然后尝试优雅地退出。致命错误很少使用,因为通常情况下,如果捕获到错误,您就有足够的信息来尝试并继续执行。但在您尝试并继续时可能发生损坏的情况下,请记录一个致命错误,然后跑路。

至于你要登录到哪里。我通常喜欢登录到我的应用服务器上的一个“共享”文件夹(在授权时要小心,以免它们是公开的),这样日志就很容易被访问,并且它们总是我调试的第一步。如果可能,设置它,以便任何警告、错误或致命的错误都通过电子邮件发送出去,这样你就会有“高级”警告。

干杯

票数 21
EN

Stack Overflow用户

发布于 2009-04-23 15:29:07

  • 所有异常被记录在调用堆栈中可能的最高级别的ERROR级(通常在事件处理程序等中),导致问题的
  • 用户输入被记录在WARN级(因为它可能表明我们需要改进我们的UI以更好地引导INFO级的异常),包括所涉及的数据(通常是INFO序列化的,删除任何敏感信息后)可能会在DEBUG级别记录非常详细的
  • 活动

我们很少使用FATAL级别日志记录。

我们通常使用INFO级别的RollingLogFileAppenderERROR级别的SmtpAppender进行部署。

票数 2
EN

Stack Overflow用户

发布于 2009-04-23 15:38:13

使用Apache Chainsaw的Log4Net。Chainsaw是一个仪表板,用于实时查看日志消息。它可以处理多个应用程序,执行即时过滤,以及其他一些方便的功能。

如果有疑问,记录它(最好是在更高的级别,如DEBUG或INFO,或者创建您自己的级别)。您可以在配置文件中配置输出内容。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/782244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档