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

How to log messages issued by serilog in a nuget package in my ASP.NET Core app using ILogger

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

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

我也在使用库(Fishbus:github/nuget) for interfacing with Azure Message Bus. The library logs suitable messages, but uses Serilog 来做。所以开箱即用,没有记录任何消息。

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

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

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