我完成了一个Web应用程序,我正在尝试实现一些日志记录.我从来没有见过任何记录什么的好例子.这只是例外吗?还有其他我应该记录的东西吗?您发现哪种类型的信息对查找和修复错误很有用.
寻找一些具体的指导和最佳实践.
谢谢
跟进
如果我正在记录异常,我应该记录哪些信息?我应该做的不仅仅是_log.Error(ex.Message,ex); ?
解决方法
以下是我可以记录的内容和应用程序的逻辑细分,您可能想要的原因以及如何执行此操作.无论我建议在实现时使用log4net等日志框架.
异常记录
当其他一切都失败了,这不应该.有一个捕获所有无法处理的异常的中心方法是一个好主意.这不应该
除非你使用的不仅仅是线程,否则要将整个应用程序包装在一个巨大的try / catch中要困难得多.这项工作并未就此结束
但是因为如果你等到异常到达你,很多有用的信息都会超出范围.你至少应该这样做
尝试收集应用程序状态的特定部分,这些部分可能有助于在堆栈展开时进行调试.您的应用程序应始终准备好生成此类型的日志输出,尤其是在生产中.如果你还没有,请务必查看ELMAH.我没试过,但我有heard great things
应用程序记录
我称之为应用程序日志的任何日志都包含捕获有关您的应用程序在概念级别上执行的操作的信息,例如“已删除订单”或“用户已登录”.这种信息可用于分析趋势,审核系统,锁定系统,测试,安全和检测粗略的错误.计划将这些日志留在生产中也许是一个好主意,可能是在不同的粒度级别.
跟踪记录
对我来说,跟踪日志记录代表了最精细的日志记录形式.在这个级别,您更少关注应用程序正在做什么,而更多关注它是如何做的.这是实际逐行遍历代码的一步.它可能最有助于处理并发问题或任何难以重现的问题.你不希望总是让它运行,可能只在需要时打开它.
最后,与通常只在最后解决的许多其他事情一样,考虑日志记录的最佳时间是在项目的开始,以便应用程序可以在设计时考虑到它.但是很棒的问题!