减少 HttpClient 日志的详细程度
Reducing HttpClient log verbosity
我目前正在编写一个进行一些 REST 调用的 .NET 6 应用程序。
出于某种原因,进行这些调用时,HttpClient 会记录以下内容:
[15:33:15 INF] Start processing HTTP request GET URL_GOES_HERE
[15:33:15 INF] Sending HTTP request GET URL_GOES_HERE
[15:33:15 INF] Received HTTP response headers after 70.5393ms - 200
[15:33:15 INF] End processing HTTP request after 73.441ms - 200
由于我打的电话太多,这让我的日志平台难以导航。
我在网上找不到任何关于如何使这些日志静音的文档。他们似乎是 .NET 6 的新手?至少在开始这个新项目之前我还没有见过他们。
我发现 this github repo 解决了这个问题,但是,我宁愿不拉第三方包只是为了沉默一些日志。
我的应用程序中还有其他“信息”级别的日志,这意味着我无法抑制整个级别。
难道真的没有本机方法可以使来自 HttpClient 的这些日志静音吗?
日志设置在您的 appsettings.json 文件(或 appsettings.development.json 文件)中设置:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
将默认值更改为“警告”或“错误”(或更高级别)将删除较低级别的消息(例如您收到的信息消息)。
我设法使用 Serilog
排除了这些日志,我已经在应用程序中使用了它。
设置 LoggerConfiguration 时,您可以应用“过滤器”,如下所示:
Log.Logger = new LoggerConfiguration()
.Filter.ByExcluding("SourceContext like '%System.Net.Http.HttpClient%' and @l = 'Information'")
.CreateLogger();
我目前正在编写一个进行一些 REST 调用的 .NET 6 应用程序。
出于某种原因,进行这些调用时,HttpClient 会记录以下内容:
[15:33:15 INF] Start processing HTTP request GET URL_GOES_HERE
[15:33:15 INF] Sending HTTP request GET URL_GOES_HERE
[15:33:15 INF] Received HTTP response headers after 70.5393ms - 200
[15:33:15 INF] End processing HTTP request after 73.441ms - 200
由于我打的电话太多,这让我的日志平台难以导航。
我在网上找不到任何关于如何使这些日志静音的文档。他们似乎是 .NET 6 的新手?至少在开始这个新项目之前我还没有见过他们。
我发现 this github repo 解决了这个问题,但是,我宁愿不拉第三方包只是为了沉默一些日志。
我的应用程序中还有其他“信息”级别的日志,这意味着我无法抑制整个级别。
难道真的没有本机方法可以使来自 HttpClient 的这些日志静音吗?
日志设置在您的 appsettings.json 文件(或 appsettings.development.json 文件)中设置:
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"AllowedHosts": "*"
}
将默认值更改为“警告”或“错误”(或更高级别)将删除较低级别的消息(例如您收到的信息消息)。
我设法使用 Serilog
排除了这些日志,我已经在应用程序中使用了它。
设置 LoggerConfiguration 时,您可以应用“过滤器”,如下所示:
Log.Logger = new LoggerConfiguration()
.Filter.ByExcluding("SourceContext like '%System.Net.Http.HttpClient%' and @l = 'Information'")
.CreateLogger();