【问题标题】:ASP.NET Web API Logging and TracingASP.NET Web API 日志记录和跟踪
【发布时间】:2013-11-13 00:43:21
【问题描述】:

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

我是从 Web API 的角度专门提出这个问题的。是否有一系列必须记录此必须跟踪此。 例如,关于控制器请求的 INFO 跟踪、任何 NULL 检查等。

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

【问题讨论】:

  • 你应该记录你需要的细节,并捕获任何异常
  • 没有“参考列表”,因为“最佳日志记录和跟踪覆盖率”不依赖于技术(ASP.NET Web API)...它取决于您的具体目标...

标签: c# logging asp.net-web-api log4net trace


【解决方案1】:
【解决方案2】:

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

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

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

  • @每个入口点的快速日志行,以及完整的内容 传入的请求,最好采用能够实现的格式 你更容易从提琴手或类似的人重新发出相同的请求 工具(这可以通过自定义操作过滤器来完成 - see how the author uses these for performance monitoring a web api app here

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

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

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

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

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

  • 【讨论】:

    • 如果没有禁止保留......列表中还有什么?
    • 我想了想,经过我上面列出的内容,答案很大程度上取决于您在 webapi 操作中所做的事情。它是计算密集型的吗?它是否访问外部资源?涉及什么样的数据结构或算法?如果你给我一个具体的例子来说明你的应用程序是什么样的,我可以提供更多潜在的项目来记录!
    • 它是一个典型的使用 WebAPI 框架的 MVC 应用程序......使用通常的控制器驱动的 CRUD 遵循存储库模式。不是计算密集型,但主要是列表,过滤和排序并返回它们。
    • 啊,好吧,所以我上面的评论适用 - 如果从配置文件解析,记录您的数据库连接字符串,所有 sql 查询字符串都发生时,查询结果集很重要......另外,如果您正在调试一个本地的 asp.net/webapi 项目我强烈推荐 Glimpse! (getglimpse.com)
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多