.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 的关键之间没有相同的映射,它只是映射为错误。不幸的是,它们具有相同的名称,但在这两种上下文中具有不同的含义,这可能会造成混淆。
在我的测试中 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 的关键之间没有相同的映射,它只是映射为错误。不幸的是,它们具有相同的名称,但在这两种上下文中具有不同的含义,这可能会造成混淆。