【发布时间】:2018-04-14 17:05:18
【问题描述】:
我希望能够使用 Serilog 和 Microsoft.Extensions.Logging (ILogger) 来检测我的代码。并让它们都配置相同,以便它们写入相同的“接收器”。我有一个带有日志记录工作的 ASPNET Core 应用程序和一些依赖库,使用 Serilog,我想从(到与 ASPNET Core 应用程序相同的位置)捕获日志输出。
我知道有一个 nuget 包可以将 Serilog 日志记录与 ASPNET Core 应用程序一起使用。然而,这个特殊的扩展
(WebAppBuilder).UseSerilog()
似乎用 serilog 版本完全替换了现有的 ILoggerFactory,这会阻止我的 ASPNET 日志记录工作。如果我可以简单地插入 serilog 配置以便它像原始的 ASPNET Core 机制一样工作,那就没问题了。但是,Serilog.Settings.Configuration 似乎并没有忠实地将配置复制到 Serilog。
这也困扰着我,他们不能都共享共享配置,如果我使用其他使用 NLog 的库怎么办,我如何将它集成到同一个日志记录基础架构中?
Serilog 可以和 Microsoft.Extensions.Logging 一样配置吗?如果是这样,这是如何实现的?
【问题讨论】:
-
Serilog provider 用于 Microsoft.Extensions.Logging,所以它是相同的机制。我不知道为什么使用它会阻止您当前的日志消息被写入 Serilog 接收器、控制台或您在
appsettings.json中指定的任何其他内容。确保日志配置现在位于 "Serilog" entry 下。
标签: logging asp.net-core .net-core serilog