【问题标题】:Elmah, what is the most efficient persistent mechanism for errors?Elmah,最有效的错误持久机制是什么?
【发布时间】:2016-10-14 21:08:48
【问题描述】:

我在 Azure Web 应用程序中有一个 asp.net MVC 应用程序,它连接到 SQL Azure。

目前我将 Elmah 错误存储在 App_data 中。这些可以积累。我也觉得写这些文件效率低下。此外,当您下载“Next 50”错误时,可能会在服务器上受到攻击。

如何改进我的持久性策略?我怀疑可能是使用数据库。这是应用程序数据库的独立数据库还是同一个数据库?

我也在测试 Application Insights。目前我怀疑 Elmah 与 Application Insights 一起发挥作用,但我可能错了。

谢谢。

【问题讨论】:

    标签: asp.net-mvc azure azure-sql-database azure-web-app-service elmah


    【解决方案1】:

    Elmah 数据库可以在单独的 Azure DB 中使用,以不消耗您的“业务”数据库 DTU,顺便说一句,如果您想记录很多内容,则永远不会影响它的性能。

    一方面,Elmah 可以处理“功能”日志,另一方面,应用程序 Insight 可以进行远程通信和监控日志,此外您还可以在 Azure 门户中启用服务器和应用程序日志以获取存储帐户中的自动日志, here 是这些服务器和应用程序日志的概述。

    【讨论】:

      【解决方案2】:

      如上一个答案所述,您可以将日志文件存储在 sql azure 数据库中。或者您可以选择更便宜的 azure 表存储选项,它是一种基于无 sql 的数据存储。有一个提供程序可用于相同的。 https://github.com/MisinformedDNA/Elmah.AzureTableStorage https://www.nuget.org/packages/WindowsAzure.ELMAH.Tables/ 或者,如果您更多地查看日志的数据转储,例如 xml 格式并且不需要可查询的格式,您可以选择更便宜的 azure blob 存储。 https://github.com/dampee/Blob-Elmah

      【讨论】:

      • Azure DB 运行良好。现已实施。我们还发现一个数据库可以服务于多个应用程序。我们还担心更多的 Elmah DB 会需要更多的 Azure 成本,但它似乎在 Basic 上运行良好。
      • 是的,这完全取决于业务用例。如果您记录了很多并且没有真正查找日志那么它不需要关系数据库。你应该看看表存储和blob。在某些情况下,人们会出于分析目的记录大量日志,并使用 splunk 之类的系统来运行日志。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多