在 .net 控制台应用程序中配置日志记录级别

克莱弗

我正在编写一个 .net 控制台应用程序,但我在设置日志记录级别时遇到了问题。我已经使用“日志记录”部分创建了 appsettings 文件,但它不起作用 - 我将级别设置为 Error 并且仍然收到信息级别错误。我知道 appsettings 正在正确加载,因为其余设置已正确绑定。

我的主要课程:

static async Task Main(string[] args)
{
    await new HostBuilder()
        .ConfigureAppConfiguration((context, config) =>
        {
            config.AddJsonFile("appsettings.json", true);
            config.AddJsonFile($"appsettings.{context.HostingEnvironment.EnvironmentName}.json", true, true);
            config.AddEnvironmentVariables();
            if (args != null)
                config.AddCommandLine(args);
        })
        .ConfigureServices((_, services) =>
            services.AddMagic())
        .RunConsoleAsync();
}

和我的 appsettings.json:

{
  "Postgres": {
    "Host": "localhost",
    "DatabaseName": "db",
    "Username": "admin",
    "Password": "admin",
    "MinLogLevel": "Error"
  },
  "Redis": {
    "Host": "localhost:6379",
    "Password": null
  },
  "Logging": {
    "LogLevel": {
      "Default": "Error"
    }
  }
}
克莱弗

添加直接登录配置解决了我的问题:

.ConfigureLogging((context, config) =>                    
    config.AddConfiguration(context.Configuration.GetSection("Logging")))

整个主要功能:

static async Task Main(string[] args)
{
    await new HostBuilder()
        .ConfigureAppConfiguration((context, config) =>
        {
            config.AddEnvironmentVariables();
            config.AddJsonFile("appsettings.json", true, true);
            config.AddJsonFile($"appsettings.{context.HostingEnvironment.EnvironmentName}.json", true, true);
            if (args != null)
                config.AddCommandLine(args);
        })
        .ConfigureLogging((context, config) =>
            config.AddConfiguration(context.Configuration.GetSection("Logging")))
        .ConfigureServices(services =>
            services.AddMagic())
        .RunConsoleAsync();
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

.Net Core 2.0控制台应用程序的日志记录和配置?

Docker容器中的ASP.NET Core / .NET Core控制台应用程序日志记录

在 .Net Core 控制台应用程序中一起使用 NLog 和控制台日志记录

如何从.net应用程序禁用到Spark控制台的所有日志记录信息

.Net Core /控制台应用程序/配置/ XML

控制台应用程序.net Core 2.0的配置

如何使.net Core 3.1控制台应用程序中的控制台记录器正常工作

c#: Log4Net 控制台应用程序无法根据日志级别和崩溃创建控制台颜色

.NET Core控制台应用程序,如何在每个环境中配置appSettings?

在.NET Core 2.1控制台应用程序中配置用户密码

使用数据库在 .NET Core 控制台应用程序中配置 Automapper?

侦听.NET控制台应用程序中的按键

如何在ASP.NET Core 1.0中显示Web应用程序的LoggerFactory日志控制台?

IIS托管的asp.net核心应用程序中的控制台日志在哪里

访问由 .NET Core 控制台应用程序在 Docker 中生成的日志文件

.NET Core控制台应用程序的ASP.NET Core配置

添加应用程序参数以在Docker中运行.NET控制台应用程序

如何在.NET控制台应用程序中获取应用程序的路径?

.Net Core 3控制台应用程序中带有Serilog的appsettings.json中的哨兵配置

从appsettings.json控制台应用程序.NET 3.1的核心加载配置

.net核心控制台应用程序强类型配置

尝试使用通用 HostBuilder 使用 .net core 2 控制台应用程序配置 Serilog

.net核心控制台应用程序强类型配置

在“ asp.net 5控制台”应用程序中,“控制台”不包含“ ReadKey”的定义

控制Docker中托管的.NET Core控制台应用程序的生存期

.NET Core 2.1控制台应用程序中的IHttpClientFactory引用System.Net.Http

控制台应用程序中的通用.NET与通用.NET Core命名空间

如何在 .Net Core 控制台应用程序中引用 .Net Core 库

.NET控制台应用程序作为Windows服务