【问题标题】:Access LoggerFilterOptions from custom ILogger从自定义 ILogger 访问 LoggerFilterOptions
【发布时间】:2025-12-16 08:55:01
【问题描述】:

当通过调用 AddLogging 将日志记录添加到 MVC Core 中的 DI 服务集合时,通常会从 appsettings/configuration 加载“Logging”部分并将其传递给 ILogOptionsBuilder.AddConfiguration,如下所示:

serviceCollection.AddLogging(config => {
    config.AddConfiguration(configuration.GetSection("Logging"));
    config.AddConsole();
    config.AddDebug();
    config.AddProvider(new MyCustomLoggerFactory());
});

传递给 AddConfiguration 的信息配置了一个 LoggerFilterOptions 对象,Debug logger 和 Console logger 都可以访问该对象以确定实际的日志级别。

我是否可以从通过 MyCustomLoggerFactory 创建的 ILogger 访问该信息对象,还是必须将配置部分的另一个副本传递给 MyCustomLoggerFactory 并手动解析该部分?

【问题讨论】:

    标签: c# logging .net-core asp.net-core-mvc


    【解决方案1】:

    依赖注入IOptions<LoggerFilterOptions>http://jackhiston.com/2017/7/30/using-iconfigureoptionst/ 提供了一个示例。

    【讨论】:

    • 这是边界线link-only answer。您应该在此处扩展您的答案以包含尽可能多的信息,并使用该链接仅供参考。