gpt4 book ai didi

c# - 将 Serilog 与 Microsoft.Extensions.Logging.ILogger 一起使用

转载 作者:行者123 更新时间:2023-12-04 04:24:59 34 4
gpt4 key购买 nike

我使用主机创建了一个 .NET Core 3.1 项目,该主机是带有 IServiceCollection 的 IoC 容器。并使用 ILogger<T> 在整个地方实现了日志记录来自Microsoft.Extensions.Logging的接口(interface).我现在需要实现更高级的日志记录并决定使用 Serilog。
我认为从 .NET 内置记录器切换到 Serilog 会轻而易举。但令我惊讶的是,Serilog 正在使用它自己的 ILogger界面 - 无赖!所以现在我需要更新所有地方以使用 Serilog ILogger ,或使用 .NET Core ILogger<T> 实现 Serilog界面。
我的问题是 - 是否真的不可能在 Microsoft.Extensions.Logging 中将 Serilog 与 ILogger 接口(interface)一起使用? ?会聪明很多!

最佳答案

Serilog.Extensions.Logging程序集上有一个扩展方法 IloggingBuilder调用AddSerilog (它在 Serilog 命名空间中)将允许您使用 Serilog 进行日志记录。例如:
.NET Core 2.2 及更早版本(使用 WebHost ):

WebHost.CreateDefaultBuilder(args)
.ConfigureLogging(logging =>
{
logging.ClearProviders();
logging.AddSerilog();
});
.NET Core 3.1 及更高版本(使用通用 Host 用于 Web 或控制台应用程序):
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup<Startup>()})
.UseSerilog();
现在 ILoggerILogger<>实现将调用 Serilog。

关于c# - 将 Serilog 与 Microsoft.Extensions.Logging.ILogger 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61544047/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com