asp.net-core - Asp.Net Core Web 应用程序中的 SeriLog 未正确注入(inject)依赖项

标签 asp.net-core serilog

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/

相关文章:

c# - Azure AD (MSAL) 身份验证不适用于 ASP.NET 核心 API

c# - 如何使用 .NET 6 的新最小托管模型在集成测试中使 Serilog 静音

c# - DryIoc 与 Serilog - 设置日志记录上下文

serilog - 从配置文件配置 AzureTableStorage Serilog 接收器

asp.net-core - ASP.NET Core 中的 WebForm 等价物是什么?

c# - .NET 核心 : How to get a `Controller` instance (or just it's full name) from ViewLocationExpanderContext

asp.net-core - ASP NET Core SignalR OnDisconnectedAsync 未使用集线器触发 [授权]

asp.net-core - 使用 asp.net 核心的最简单的 Web 服务器代码是什么?

c# - 使用静态 `Serilog.ILogger` 安全吗

c# - 在没有 DI 的情况下获取 Serilog 记录器的实例