首页 > 解决方案 > 是否可以获得 ILogger 的当前 LogLevel?

问题描述

我有一个这样定义的组件:

public class MyClass
{
    public MyClass(ILogger<MyClass> logger)
    {
    }
}

我不知道使用该组件的开发人员是否会使用 application.json 或环境变量配置记录器。

有没有办法获取记录器的当前 LogLevel 而不是尝试使用 IsEnabled 方法进行猜测?

标签: c#asp.net-core-5.0

解决方案


您可以使用以下功能:

ILogger.IsEnabled(LogLevel)

https://docs.microsoft.com/en-us/dotnet/api/microsoft.extensions.logging.ilogger.isenabled?view=dotnet-plat-ext-5.0#Microsoft_Extensions_Logging_ILogger_IsEnabled_Microsoft_Extensions_Logging_LogLevel _

因此,您可以直接使用它来检查特定级别,也可以使用 switch case 创建自己的函数并返回在您的上下文中启用的最低级别。


推荐阅读