ASP.NET Web API日志记录和跟踪

一旦使用适用于ASP.NET Web API的log4net进行日志记录和跟踪设置,需要记录和/或跟踪的具体方面是什么?

我从Web API的角度来看这个问题。 是否有一系列必须记录这个必须跟踪这个 。 就像,INFO跟踪控制器的请求,任何NULL检查等。

是否有可以validation的参考列表,以确保ASP.NET Web API中的最佳日志记录和跟踪覆盖率?

因此,我将假设您的日志记录目标应该是调试应用程序而不是衡量性能。

虽然我认为对此没有任何“正确”的答案,但至少我总是会尝试登录

  • 每个日志行中的时间戳,类/函数名称和线程名称(如果运行multithreading应用程序)
  • 每个入口点的快速日志行@以及传入请求的完整内容,最好采用一种格式,使您更容易从fiddler或类似工具重新发出相同的请求(这可以通过自定义操作完成)filter – 请参阅作者如何使用这些来监控web api应用程序的性能 )
  • 如果您正在执行任何数据库查询作为操作的一部分,请尽可能记录完整查询sql字符串(再次使其在调试期间更容易重复)以及至少返回的#行
  • 如果您正在进行任何外部服务调用,请记录完整的请求和响应字符串
  • 使用try / catch块记录任何exception(您也可以使用类似ELMAH库的东西自动执行此操作而不是代码处理 – 链接此处和此处
  • 在运行时解决的任何问题 – 还应记录配置文件,数据库查询,计算值中的值
  • 我确信此列表中还有更多内容 – 毕竟这与您在应用中的操作有所不同。 你应该在每一步都问自己 – 我的申请中可能出现什么问题? 在我调试问题后,我会发现什么事情,或者我会在这方面起作用的可怜的家伙会发现什么?

    另一类项目,用于记录服务代码,该服务代码实现授权身份validation和模拟,需要提升访问权限。 这些应该是可配置的,以记录成功失败或两者。