我正在使用 Serilog 来记录应用程序见解,但我只获取要记录的日志级别警告、错误和严重。在 appsettings.json 中,我将最小日志级别设置为详细,这会使用文件和控制台接收器记录所有内容。
默认情况下,应用程序见解只能记录警告及以上级别。在代码中(在配置日志记录中),我可以添加一个过滤器来覆盖警告及以上的默认值。我更喜欢在应用程序设置中使用其他日志记录配置来执行此操作。
如何使用 appsettings 允许 Serilog 将所有级别记录到 Application Insights?
- 我在应用程序洞察中收到一些日志,因此连接是
在职的。
- 我在日志文件和控制台上看到所有日志级别。
在配置日志记录的地方,如果我添加日志级别文件(注释掉),我可以使其工作。我需要从应用程序设置开始工作。
host.ConfigureLogging(
loggingBuilder =>
{
var configuration = new ConfigurationBuilder()
.AddJsonFile("appsettings.json")
.Build();
var logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration)
.CreateLogger();
loggingBuilder.AddApplicationInsights();
loggingBuilder.AddSerilog(logger, dispose: true);
//loggingBuilder.AddFilter<ApplicationInsightsLoggerProvider>("", LogLevel.Trace);
}
);
This is my code and the results:
这是我的应用程序设置:
"Serilog": {
"AllowedHosts": "*",
"Enrich": [ "WithMachineName" ],
"MinimumLevel": {
"Default": "Verbose",
"Override": {
"Microsoft": "Warning",
"System": "Warning"
}
},
"WriteTo": [
{
"Name": "Console"
},
{
"Name": "File",
"Args": {
"fileSizeLimitBytes": "1048576",
"formatter": "Serilog.Formatting.Compact.CompactJsonFormatter, Serilog.Formatting.Compact , Version=1.0.0.0, Culture=neutral, PublicKeyToken=24c2f752a8e58a10",
"path": "c:\\LogFiles\\Publisher\\Test1\\_log.txt",
"retainedFileCountLimit": null,
"rollingInterval": "Day",
"rollOnFileSizeLimit": "true"
}
},
{
"Name": "ApplicationInsights",
"Args": {
"restrictedToMinimumLevel": "Verbose",
"telemetryConverter": "Serilog.Sinks.ApplicationInsights.Sinks.ApplicationInsights.TelemetryConverters.TraceTelemetryConverter, Serilog.Sinks.ApplicationInsights"
}
}
]
},