在 Startup.cs
Configure()
方法,我设置记录器如下:
Serilog.Log.Logger = new LoggerConfiguration()
.MinimumLevel.Verbose()
.Enrich.FromLogContext()
.WriteTo.RollingFile(new CompactJsonFormatter(), "c:\\temp\\myapp.json")
.CreateLogger();
loggerFactory.AddSerilog(Serilog.Log.Logger);
ILogger 和 Log.Logger 始终评估为 Serilog.Core.Pipeline.SilentLogger 而不是设置的内容。我错过了设置 DI 的任何步骤吗?
最佳答案
这可能发生在某些 Autofac builder.RegisterLogger();
的场景方法被调用而不传递 ILogger
,但无论出于何种原因 AutofacSerilog 集成 无法检测到先前创建的记录器。
如果您有 ILogger
例如,您可以像这样显式地将它传递给容器构建器:
builder.RegisterLogger(logger);
其中 logger 是一个 ILogger 实现。
关于asp.net-core - Asp.Net Core Web 应用程序中的 SeriLog 未正确注入(inject)依赖项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50885010/