[英]Remove http client logging handler in ASP.NET Core
使用 .NET Core 的HttpClientFactory
时,是否可以以某种方式删除默认的LoggingHttpMessageHandler
?
我期待像下面这样的东西,但它似乎不存在
services.AddHttpClient("minos")
.RemoveHttpMessageHandler<LoggingHttpMessageHandler>();
您可以通过将 HttpClient 的日志级别设置为none在 appsettings.json 中配置它:
但是,这也将启用来自 System 根命名空间中所有其他组件的信息性消息。 因此,最好通过将配置限制为“System.Net.Http.HttpClient”来配置日志记录,以便您仅通过通过 HttpClientFactory 创建的客户端添加来自 HTTP 请求的消息:
{ "Logging": { "LogLevel": { "Default": "Warning", "System.Net.Http.HttpClient": "Information" } } }
https://www.stevejgordon.co.uk/httpclientfactory-asp-net-core-logging
对于需要这个的人,我在 github repo 上打开了一个问题,其中一位贡献者回复了以下内容(我仍然需要尝试一下)
foreach (var service in serviceCollection.Where(s => s.ServiceType == typeof(IHttpMessageHandlerFactory)))
{
serviceCollection.Remove(service);
}
更新:改用以下内容(以上内容不完全有效)
services.RemoveAll<IHttpMessageHandlerBuilderFilter>();
https://github.com/aspnet/HttpClientFactory/issues/196#issuecomment-431440889
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.