【问题标题】:.Net Core ILogger saves Critical as Error.Net Core ILogger 将严重保存为错误
【发布时间】:2026-02-09 12:20:07
【问题描述】:

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

程序.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

【问题讨论】:

    标签: .net-core event-log ilogger


    【解决方案1】:

    How to log an Event log in the Critical level?
    How to create CRITICAL events for Windows Event Viewer?

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

    【讨论】: