在我的测试 POST 操作中,我将 4 个不同的日志(信息、警告、错误和严重)保存到 Windows EventLog 中。 我可以在事件查看器中看到所有四个,但其中一个级别错误。它被标记为“错误”,但应标记为“严重”
程序.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"
}
}
}
Controller
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 log an Event log in the Critical level?
How to create CRITICAL events for Windows Event Viewer?
EventLog 中的关键日志级别是为系统/内核内容保留的。 EventLog的关键和.Net Core的关键之间没有相同的映射,它只是映射为错误。不幸的是,它们具有相同的名称,但在这两种上下文中具有不同的含义,这可能会令人困惑。
关于.net-core - .Net Core ILogger 将关键保存为错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66985980/