use*_*392 14 c# asp.net-web-api serilog .net-6.0
我正在尝试Serilog在 .NET 6 中配置 Web API 项目。
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(builder.Configuration)
.Enrich.FromLogContext()
.WriteTo.Console()
.CreateLogger();
builder.Logging.ClearProviders();
builder.Logging.AddSerilog(Log.Logger);
//builder.Host.UseSerilog(Log.Logger);
Run Code Online (Sandbox Code Playgroud)
将 Serilog 添加到日志记录管道和将 Serilog 设置为日志记录提供程序之间有什么行为差异?我应该调用这两种方法吗?
Der*_*eer 15
这是个很大的差异。
该.AddSerilog()提供程序将 Serilog 提供程序添加为潜在的多个提供程序之一。通过以下配置,Microsoft 记录器将首先登录到 Console 提供程序,然后登录到 Serilog 提供程序:
.ConfigureLogging(logging => logging.AddConsole().AddSerilog())
Run Code Online (Sandbox Code Playgroud)
将.UseSerilog()Serilog 配置为唯一的提供程序。无论您是否配置了日志记录管道,以下命令都会将所有日志发送到 Serilog :
.UseSerilog();
Run Code Online (Sandbox Code Playgroud)
区别实际上归结为使用 Micosoft 的可插拔模型或使用 Serilog 的可插拔模型。
通常您不会使用.AddSerilog()Serilog 库,因为 Serilog 库实际上旨在用作具有一个或多个“接收器”的唯一提供者,但在某些情况下,您可能需要登录到存在 Micosoft ILogger 的特定目标,并且ILoggerProvider,但不存在 Serilog 接收器(并且您不想自己编写它)。在这种情况下,您可以选择添加 Serilog 作为附加提供程序。
| 归档时间: |
|
| 查看次数: |
3467 次 |
| 最近记录: |