asp.net 核心的 ELMAH

ELMAH for asp.net core

我正在研究 asp.net 托管在 azure 上的核心 webapp,我想将我的 Elmah 日志写入我的 azure table 存储。我研究的许多示例都使用 "API_KEY" 和 "logbucketId" 但我不确定它们是什么。 例如,根据此处的 elmah 文档 [https://docs.elmah.io/logging-to-elmah-io-from-aspnet-core/]

app.UseElmahIo(
    "API_KEY", 
    new Guid("LOG_ID"),

安装 nuget 包后,我在 appsettings.json 文件中没有看到任何 API_KEY 或 LogBucketId。

在哪里可以找到我的 API_KEY 和 LogBucket_Id?

ELMAH 不支持 ASP.NET 内核。您链接到的文档来自 elmah.io。虽然它们的名称相似并且 elmah.io 使用 ELMAH 进行某些集成,但它们不共享代码或文档。

ELMAH 不适用于 ASP.NET 核心,因为 ASP.NET 核心不适用于 HttpModules 和 HttpHandler(ELMAH 代表错误记录模块和处理程序)。 ASP.NET Core 确实包含一个新的(预发布)诊断工具,称为 ELM(错误记录中间件 - 创意,对吧?)。您可以在此处找到其来源和示例: https://github.com/aspnet/Diagnostics/tree/release/1.1/src/Microsoft.AspNetCore.Diagnostics.Elm

另一个类似于 ELMAH(和 ELM)但功能更多的选项是 Glimpse: http://getglimpse.com/

我知道这些都不能直接回答您的问题,但希望您会发现其中一个或两个有用的替代工具。

您可以检查 ELMAH 移植到 Net.Core 版本

https://github.com/ElmahCore/ElmahCore

使用前请确保它符合您的期望。

注意:此新扩展正在开发中,不支持所有 Elmah 功能。

https://github.com/ElmahCore/ElmahCore 现在支持 .net core

不是基于ModulesHandlers,而是Middleware

虽然仍然有限,但效果很好。

目前未使用 async 调用。但是它的扩展性很好。