【问题标题】:Configure logging via config file in .NET Core通过 .NET Core 中的配置文件配置日志记录
【发布时间】:2020-01-13 08:00:43
【问题描述】:

我们正在尝试通过配置文件(默认 appsettings.json)为我们的 ASP.NET Core 应用程序配置日志记录。文档说它应该是可能的 (https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1),但我们无法让它像预期的那样工作。

到目前为止我们所做的尝试:

  • 将代码保留在 ASP.NET Core 的项目模板中,只需更改 appsettings.json => 无效
  • 将 appsettings.json 显式添加为配置文件并在 Program.cs 中配置日志记录 => 完全不记录
    public static IHostBuilder CreateHostBuilder (string[] args) =>
        Host.CreateDefaultBuilder (args)
            .ConfigureAppConfiguration ((hostingContext, config) =>
            {
              config.Sources.Clear ();

              var env = hostingContext.HostingEnvironment;

              config.AddJsonFile ("appsettings.json", optional: false, reloadOnChange: true)
                    .AddJsonFile ($"appsettings.{env.EnvironmentName}.json",
                        optional: true, reloadOnChange: true);

              config.AddEnvironmentVariables ();
            })
            .ConfigureLogging ((hostingContext, logging) =>
            {
              logging.ClearProviders ();

              logging.AddConfiguration (hostingContext.Configuration.GetSection ("Logging"));
            })
            .ConfigureWebHostDefaults (webBuilder =>
             {
               webBuilder.UseStartup<Startup> ();
             });
  • ... 在 Startup.ConfigureServices 中配置日志记录 => 无效
    public void ConfigureServices (IServiceCollection services)
    {
      services.AddLogging (config => config.AddConfiguration (Configuration.GetSection("Logging")));
      services.AddControllers ();
    }

【问题讨论】:

    标签: asp.net-core logging .net-core


    【解决方案1】:

    你误会了。您可以配置日志记录,即每个提供者的日志级别、过滤掉消息等,但实际的提供者必须在代码中指定。换句话说,您可以通过 config 配置将哪些消息发送到控制台,但您仍然必须在 ConfigureLogging 中调用 logging.AddConsole() 来添加该提供程序。

    您拥有的代码清除了所有默认提供程序并且没有添加任何内容,因此根本没有提供程序,因此不会生成日志。您无法通过配置实际添加提供程序,只需配置已添加的提供程序即可。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-04
      • 2011-02-09
      • 2021-12-17
      相关资源
      最近更新 更多