我刚刚开始使用Log4Net,我想看看您在日志记录体验中发现了哪些有用的东西。
你发现哪些类型的东西对日志有用;什么东西最终只是噪音;你什么时候使用不同的日志级别(调试、信息等);你有没有每个日志条目的标准格式;有没有你总是记录的东西?
有什么缺陷吗?关于一般日志记录的好文章?
更新:你会登录到哪里?什么附加者?为什么?
谢谢!
发布于 2009-04-23 17:10:23
我的回复是基于Robert Kozak的优秀回复,尽管我并不是以同样的方式使用我的日志
我使用五种类型的日志语句:
调试语句是在您仍在编写应用程序时,以及当您需要完全了解您的执行流是什么/在哪里时非常有用的语句。您可以使用DEBUG语句来测量锁前面的队列,或者检查登录用户的用户名,甚至检查某个SQL调用的参数。DEBUG用于通常不需要知道的语句。
INFO应该在任何时候使用,这些信息在出现错误时非常有用,但并不表示出现了任何错误。如果您使用太多的INFO语句,您的日志将变得臃肿和无用,所以要小心。使用INFO来获取错误时需要的任何关键信息,并且它不会靠近抛出错误的位置。
如果您检测到可恢复但仍然意外(至少有一点预期,因为您已捕获它),请使用WARN level。它表明您的应用程序可能处于不能工作的状态,但您相信您可以在当前执行路径上恢复/继续。
每当您捕获意外异常时,都会发出ERROR警告。如果您正在恢复/重试当前方法,我建议您使用WARN。如果您要取消/退出,请使用错误。即使你的程序可以继续,错误意味着你正在尝试做一些事情,但被拒绝了,因此正在转移到其他事情上。
当你在远远低于抛出位置的地方捕捉到一些东西,而你根本不知道发生了什么时,就可以使用FATAL。这意味着您甚至没有尝试继续执行,您只是要记录您可以支配的每一个可能的信息,然后尝试优雅地退出。致命错误很少使用,因为通常情况下,如果捕获到错误,您就有足够的信息来尝试并继续执行。但在您尝试并继续时可能发生损坏的情况下,请记录一个致命错误,然后跑路。
至于你要登录到哪里。我通常喜欢登录到我的应用服务器上的一个“共享”文件夹(在授权时要小心,以免它们是公开的),这样日志就很容易被访问,并且它们总是我调试的第一步。如果可能,设置它,以便任何警告、错误或致命的错误都通过电子邮件发送出去,这样你就会有“高级”警告。
干杯
发布于 2009-04-23 15:29:07
ERROR级(通常在事件处理程序等中),导致问题的WARN级(因为它可能表明我们需要改进我们的UI以更好地引导INFO级的异常),包括所涉及的数据(通常是INFO序列化的,删除任何敏感信息后)可能会在DEBUG级别记录非常详细的我们很少使用FATAL级别日志记录。
我们通常使用INFO级别的RollingLogFileAppender和ERROR级别的SmtpAppender进行部署。
发布于 2009-04-23 15:38:13
使用Apache Chainsaw的Log4Net。Chainsaw是一个仪表板,用于实时查看日志消息。它可以处理多个应用程序,执行即时过滤,以及其他一些方便的功能。
如果有疑问,记录它(最好是在更高的级别,如DEBUG或INFO,或者创建您自己的级别)。您可以在配置文件中配置输出内容。
https://stackoverflow.com/questions/782244
复制相似问题