如何使用 ILogger 在我的 ASP.NET Core 应用中的 nuget 包中记录 serilog 发出的消息



这应该很简单,但我找不到答案。

我有一个 ASP.NET 核心 (3.0( 应用程序。我使用 Microsoft.Extensions.Logging/ILogger进行日志记录。

我还使用一个库(Fishbus:github/nuget(与Azure消息总线接口。该库记录合适的消息,但使用 Serilog 来执行此操作。因此,开箱即用,不会记录任何消息。

如何将 Serilog "连接"到 Microsoft 日志记录框架,以便我可以看到库在做什么?

你不能,本身。您对图书馆使用的内容负责。Microsoft.Extensions.Logging是一个外观,因此当您依赖它时,应用程序可以子订阅实际的日志记录提供程序。但是,当库依赖于提供程序本身(即Serilog(时,则无法将其挂接到Microsoft.Extensions.Logging或其他提供程序。

也就是说,如果您还使用Serilog提供程序进行Microsoft.Extensions.Logging,则可以将相同的Serilog配置用于两者。它们不会以相同的方式生成日志,但它们最终都会在同一个接收器中。此外,Serilog 本身就是一个门面,具有接收器的概念,因此虽然您最终无法摆脱 Serilog,但您可以通过 Serilog 配置不同的日志记录目标,而不是使用不同的Microsoft.Extensions.Logging提供程序。

最新更新