Elmah,最有效的错误持久机制是什么?

Elmah, what is the most efficient persistent mechanism for errors?

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

目前我将 Elmah 错误存储在 App_data 中。这些可以建立起来。我也觉得写这些文件效率低下。此外,当您下载 "Next 50" 错误时,可能会命中服务器。

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

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

谢谢。

Elmah 数据库可以在单独的 Azure 数据库中使用,不会消耗您的 "Business" 数据库 DTU,顺便说一句,如果您想记录很多东西,也不会影响它的性能。

一方面 Elmah 可以处理 "Functionnal" 日志,另一方面 application Insight 可以做遥测和监控日志,此外你可以在 Azure 门户中启用服务器和应用程序日志以获取自动日志在存储帐户中,here 是这些服务器和应用程序日志的概览。

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