10

Once one has a logging and tracing setup using log4net in place for ASP.NET Web API, what are the specific aspects that need to be logged and/or traced?

I am asking this specifically from Web API perspective. Is there a series of MUST Log this or MUST trace this. Like, INFO traces about a controller's request, any NULL checks, etc.

Is there a reference list that can be validated against to ensure optimum logging and tracing coverage in ASP.NET Web API ?

4

3 回答 3

12

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

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

  • 每个日志行中的时间戳、类/函数名称和线程名称(如果您运行多线程应用程序)

  • 快速日志行@每个入口点,以及传入请求的完整内容,最好采用一种格式,使您更容易从提琴手或类似工具重新发出相同的请求(这可以通过自定义操作来完成过滤器 -在这里查看作者如何使用这些来监控 Web api 应用程序的性能

  • 如果您正在执行任何数据库查询作为操作的一部分,请尽可能记录完整的查询 sql 字符串(再次以便在调试期间更容易重复)以及至少返回的行数

  • 如果您正在进行任何外部服务调用,请记录完整的请求和响应字符串

  • 使用 try/catch 块记录任何异常(您也可以使用 ELMAH 库之类的东西自动执行此操作,而不是在代码中处理 -链接此处此处

  • 在运行时解决的任何问题 - 考虑来自配置文件、数据库查询、计算值的值,也应该被记录下来

    我确信此列表中缺少更多内容 - 毕竟这取决于您在应用程序中所做的事情。你应该在每一步都问自己——我的申请可能出了什么问题?在我在调试问题时发现有用的东西之后,我或可怜的小伙子会做什么?

  • 于 2013-11-04T15:46:53.520 回答
    0

    在需要提升访问权限的情况下,为实现授权身份验证和模拟的服务代码记录的附加项目类别。这些应该可配置为记录成功失败或两者兼而有之。

    于 2013-11-08T02:22:17.240 回答