我正在完成一个Web应用程序,尝试实现一些日志记录功能。我从未见过任何有关日志记录的好例子。仅记录异常吗?还有其他需要记录的东西吗?哪种类型的信息对于查找和修复错误非常有用。
寻找一些具体的指导和最佳实践。
谢谢
跟进
如果我要记录异常,具体应该记录哪些信息? 我是否应该做更多操作而不仅仅是_log.Error(ex.Message, ex);
?
我正在完成一个Web应用程序,尝试实现一些日志记录功能。我从未见过任何有关日志记录的好例子。仅记录异常吗?还有其他需要记录的东西吗?哪种类型的信息对于查找和修复错误非常有用。
寻找一些具体的指导和最佳实践。
谢谢
跟进
如果我要记录异常,具体应该记录哪些信息? 我是否应该做更多操作而不仅仅是_log.Error(ex.Message, ex);
?
对我来说,跟踪日志代表了最细粒度的日志记录形式。在这个级别上,您关注的不是应用程序正在做什么,而是它如何执行。这比逐行浏览代码要高一步。它可能在处理并发问题或任何难以复制的问题时最有帮助。您不希望始终运行此操作,可能只需要在需要时打开它。
最后,与许多通常只在最后才得到解决的其他事情一样,最好在项目开始时考虑日志记录,以便可以考虑到它来设计应用程序。不过,这是个很好的问题!
需要记录的一些内容:
不需要记录的内容:
我有几点建议。 除了正确使用日志严重性和异常,考虑构造你的日志语句,以便将来能够轻松查看日志数据。例如 - 快速提取有意义的信息,进行查询等。生成大量的日志数据并不是问题,问题在于将这些数据转换为信息。因此,事先结构化和定义它有助于后续使用。如果你使用log4j,我还建议使用映射诊断上下文(MDC) - 这对于跟踪会话上下文非常有帮助。除了trace和info之外,我还会使用debug级别,通常用于保留临时项目。这些可以在不需要时被过滤或禁用。
我认为当记录异常时,应该同时保存当前日期和时间、请求的URL、URL引用者和用户IP地址。