.Net Core ILogger 将 Critical 保存为 Error

.Net Core ILogger saves Critical as Error

在我的测试中 POST 操作将 4 个不同的日志(信息、警告、错误和严重)保存到 Windows 事件日志中。 我可以在事件查看器中看到所有四个,但其中一个级别错误。它被标记为 'Error' 但它应该被标记为 'critical'

Program.cs

return Host.CreateDefaultBuilder(args)
                .ConfigureLogging(logger =>
                {
                    logger.ClearProviders();
                    logger.AddEventLog(new EventLogSettings
                    {
                        SourceName = "Website API",
                        LogName = "Website API"
                    });
                })...

appsettings.json

"Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    },
    "EventLog": {
      "LogLevel": {
        "Default": "Warning"
      }
    }
  }

控制器

public async Task<IActionResult> TestEndPoint()
        {
            _logger.LogInformation("LogInformation");
            _logger.LogWarning("LogWarning");
            _logger.LogError("LogError");
            _logger.LogCritical("LogCritical");
            return Ok(null);
        }

应用程序:REST API - .NET 5.0


How to create CRITICAL events for Windows Event Viewer?

EventLog 中的关键日志级别是为 system/kernel 内容保留的。 EventLog 的关键和 .Net Core 的关键之间没有相同的映射,它只是映射为错误。不幸的是,它们具有相同的名称,但在这两种上下文中具有不同的含义,这可能会造成混淆。