【发布时间】:2022-08-21 03:15:08
【问题描述】:
我正在尝试在我的 .NET 6 应用程序中使用 Serilog 和 DI。我有这样的 Serilog 配置:
Log.Logger = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override(\"Microsoft\", Serilog.Events.LogEventLevel.Information)
.Enrich.FromLogContext()
.WriteTo.Console()
.WriteTo.Debug()
.WriteTo.File(@\"D:\\log.txt\",
retainedFileCountLimit: 5,
rollingInterval: RollingInterval.Day)
.CreateLogger();
和我的通用主机使用
IHostBuilder host = new HostBuilder().UseSerilog(Log.Logger).Build()
(为简洁起见,此处未显示配置和服务添加)。
在我的服务类中,我需要 Microsoft.Extensions.Logging 包中的 ILogger。 现在,我遇到的问题是我从任何地方都可以正确记录到调试,但是文件接收器仅在我使用 Serilogs Log.Debug() 方法时才会记录。
如果我在 Hostbuilder 上注释掉 \"UseSerilog()\",我也无法登录 Debug。因此,将 Serilog 注入 ILogger 似乎可行。
任何想法这里发生了什么?
-
您能否提供一个示例,说明您正在调用的日志方法不起作用?请记住,您可以向我们提供minimal reproducible example。
标签: dependency-injection .net-6.0 serilog serilog-sinks-file