日志记录日志级别信息未显示在Windows事件日志中



我在将**信息**日志记录到Windows事件日志时遇到了一些问题

从空白的ASP.NET Core-Web-API.NET 5开始我将以下内容编辑为Program.cs

public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureLogging((hostingContext, logging) =>
{
logging.AddConfiguration(hostingContext.Configuration.GetSection("Logging"));
logging.AddEventLog(eventLogSettings =>
{
eventLogSettings.SourceName = "MyTestLog";
});
});
webBuilder.UseStartup<Startup>();
});

并将一些样本日志写入Controler

public IEnumerable<WeatherForecast> Get()
{
_logger.LogCritical("Critical Log");
_logger.LogError("Error Log");
_logger.LogWarning("Warning Log");
_logger.LogInformation("Info Log");
_logger.LogDebug("Debug Log");
_logger.LogTrace("Trace Log");
...
}

如果我运行它,它会在控制台中显示Critical-Error-Warning-Information的日志。匹配AppSettings中配置的内容
appsettings.json:

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

在Windows事件日志中,它只显示严重、错误和警告日志,而不关心我的应用程序设置。我确信这是一个简单的配置问题,但我找不到任何文档。

如何在Windows事件日志中获取具有日志级别信息的日志?

根据本文,您可以发现ASP.NET Core提供了事件日志记录功能。与其他提供程序不同,EventLog提供程序不继承默认的非提供程序设置。

如果未指定EventLog日志设置,则默认为LogLevel.Warning

要记录低于LogLevel.Warning的事件,请显式设置日志级别。以下示例将事件日志默认日志级别设置为LogLevel.Information:

"Logging": {
"EventLog": {
"LogLevel": {
"Default": "Information"
}
}
}

相关内容

  • 没有找到相关文章

最新更新