我创建了一个新的 .net core 2.1 web 应用程序并部署到 Azure 和 Log Stream 以及应用程序日志记录到 Blob 存储似乎不尊重我的日志记录配置。

我在 Visual Studio 2019 中为 .net core 2.1 Web 应用程序创建了一个带有新项目的新解决方案。在 home Controller Index 路由中,我们添加了一行日志,一些信息如下所示:

private readonly ILogger<HomeController> _logger;

public HomeController(ILogger<HomeController> logger)
{
    _logger = logger;
}

public IActionResult Index()
{
    _logger.LogInformation("=========================================");
    _logger.LogError("=========================================");
    return View();
}

appsettings.Development.json 中,我们将 System 和 Microsoft 的 LogLevel 设置为“错误”。

我期望 Azure 中的行为与本地运行时的行为相同。在本地访问索引路由并将系统和 Microsoft 的 appsettings.Development.json LogLevel 设置为“信息”时,我们在调试输出窗口中看到此输出:



当 System 和 Microsoft 设置为“错误”时:



我们希望这种情况成为我们的 LogStream 和 Logs 的输出。我们基本上不希望日志中包含 EfCore 和其他 Microsoft 相关信息,除非其 LogLevel 为“错误”。但是我们希望记录“信息”级别的日志。

发布到 Azure 并将 ASPNETCORE_ENVIRONMENT 设置为 development 以使用相同的 Appsettings 设置后。调用索引后,日志的日志流和 blob 如下所示:



这是我的 appsettings.development.json 文件:



这是我的 appsettings.json 文件:



Azure Web 应用程序中设置的环境变量:

ASPNETCORE_ENVIRONMENT = Development

Program.cs 和 Startup.cs 未从项目模板中修改。
public class Program
    {
        public static void Main(string[] args)
        {
            CreateWebHostBuilder(args).Build().Run();
        }

        public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>();

为什么我的日志级别没有得到尊重?

最佳答案

终于能够通过将这些设置放在我的 appsettings.development.json 文件中使其工作:

{
  "Logging": {
    "IncludeScopes": false,
    "LogLevel": {
      "Default": "Information",
      "System": "Error",
      "Microsoft": "Error"
    },
    "AzureAppServicesBlob": {
      "LogLevel": {
        "Default": "Information",
        "Microsoft": "Error",
        "System": "Error"
      }
    },
    "AzureAppServicesFile": {
      "LogLevel": {
        "Default": "Information",
        "Microsoft": "Error",
        "System": "Error"
      }
    }
  }
}

关于c# - Appsettings Json 中的 ILoggingBuilder 日志记录 LogLevel 在 Azure 日志流或 Blob 日志中似乎未得到确认,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56190165/

10-12 12:37
查看更多