.NET Core 托管服务日志记录环境变量中的日志级别



我使用以下代码创建了一个托管服务:

class Program
    {
        static async Task Main(string[] args)
        {
            await new HostBuilder()
                .ConfigureAppConfiguration((hostContext, configApp) =>
                    {
                        configApp.AddEnvironmentVariables(prefix: "SAMPLEHOST_");
                        configApp.AddCommandLine(args);
                    })
                .ConfigureServices((hostContext, services) =>
                    {
                        services.AddHostedService<SampleHostedService>();
                        services.AddHostedService<AnotherHostedService>();
                    })
                .ConfigureLogging((hostingContext, logging) => 
                    {
                        logging.AddConsole();
                    })
                .RunConsoleAsync();
        }
    }

。具有以下launchsettings.json

{
  "profiles": {
    "SampleHost.Cli": {
      "environmentVariables": {
        "LOGGING__LOGLEVEL__DEFAULT": "Debug",
      }
    }
  }
}

我似乎无法让它出现在我的控制台中。 :(

Logger.LogDebug("Hello debug");

我想纯粹在环境变量上修改和调整LogLevel。我错过了什么吗?

您可能需要这样的东西:

.ConfigureLogging((hostingContext, logging) => 
{
    logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
    logging.AddConsole();
})
我没有

托管服务的经验,所以我不知道这会有所帮助,但是,我确实在 ASP.NET 应用程序上工作,并将其添加到appsettings.json

  "Logging": {
   "LogLevel": {
    "Default": "Warning",
    "System": "Error",
    "Microsoft": "Error"
   },
   "Console": {
    "IncludeScopes": true
   }
  }

最新更新