asp.net-mvc - 我应该在我的 Web 应用程序中登录哪些信息?

标签 asp.net-mvc logging instrumentation

我完成了一个 web 应用程序,我正在尝试实现一些日志记录。我从未见过任何关于记录内容的好例子。只是异常(exception)吗?还有其他我应该记录的事情吗?您认为哪种类型的信息对查找和修复错误有用。

寻找一些具体的指导和最佳实践。

谢谢

关注

如果我记录异常,我应该记录哪些信息?我应该做的不仅仅是 _log.Error(ex.Message, ex); ?

最佳答案

以下是我对可以在应用程序中记录的内容、您可能想要登录的原因以及如何进行登录的逻辑分解。无论我建议在实现时使用 log4net 等日志框架。

异常记录

当其他一切都失败时,这不应该。拥有捕获所有未处理异常的中心方法是一个好主意。这不应该
除非您使用的不仅仅是线程,否则将整个应用程序包装在一个巨大的 try/catch 中要困难得多。工作并没有在这里结束
但是因为如果您等到异常到达您时,很多有用的信息就会超出范围。至少你应该
尝试收集可能有助于在堆栈展开时进行调试的应用程序状态的特定部分。您的应用程序应始终准备好生成此类日志输出,尤其是在生产中。一定要看看ELMAH如果你还没有。我没试过,但我有 heard great things

应用程序日志

我所说的应用程序日志包括在概念级别捕获有关您的应用程序正在执行的操作的信息的任何日志,例如“已删除的订单”或“用户登录”。此类信息可用于分析趋势、审核系统、锁定系统、测试、安全和检测粗略的错误。计划将这些日志也保留在生产中可能是一个好主意,也许在不同的粒度级别。

跟踪记录

对我而言,跟踪日志记录代表了最细粒度的日志记录形式。在这个级别,您较少关注应用程序在做什么,而更多地关注它是如何做的。这是实际逐行浏览代码的第一步。它可能对处理并发问题或任何难以重现的问题最有帮助。您不希望始终运行此功能,可能仅在需要时打开它。

最后,与许多其他通常只在最后解决的事情一样,考虑日志记录的最佳时间是在项目开始时,以便可以在设计应用程序时考虑到它。好问题!

关于asp.net-mvc - 我应该在我的 Web 应用程序中登录哪些信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/967970/

相关文章:

logging - 使用 Stomp 和 Apache ActiveMQ 作为可靠的系统日志

java - tomcat 中的 Jersey 日志记录请求正文

performance - Newrelic intrumentation 减慢了 Grails 服务的初始化速度

asp.net-mvc - 为什么 DisplayFormat DataFormatString 不起作用?

c# - 恢复下载

perl - 我的 Mojolicious 应用程序未创建和写入日志文件

performance - 当我只需要基本覆盖数据时,如何提高 OpenCover 性能?

javascript - 在 Node 版本 > 10 中,await 不会调用 Promise.then 方法

c# - Entity Framework 能否在保存时自动将日期时间字段转换为 UTC?

asp.net-mvc - 传递错误消息以进行客户端验证