在ASP.NET Core中删除HTTP客户端日志处理程序

22

在使用.NET Core的HttpClientFactory时,是否有可能以某种方式删除默认的LoggingHttpMessageHandler

我期望类似于以下内容,但似乎并不存在

services.AddHttpClient("minos")
   .RemoveHttpMessageHandler<LoggingHttpMessageHandler>();
2个回答

22

许多人在不仔细阅读代码的情况下复制它,所以发布一个根本不起作用的代码并加上更新是不理想的。这就是我遇到的问题,并且这也是我更新答案的原因。不管怎样,现在它有效了,谢谢。 - Hakan Fıstık

20

您可以通过将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


4
谢谢您的回复,但是我希望不仅仅是移除日志,而是从管道中移除整个中间件(或消息处理程序),以使速度更快。我在 GitHub 上留了评论,他们给了我一种解决方案,但我还没有尝试过。 - Stephen Lautier
2
我更喜欢这个解决方案。这样我们可以将日志级别更改为错误,而不是完全删除httpclient的所有日志记录。 - Ayushmati
1
但问题是如何删除它(这可能是由于任何数量的有效原因),而不是你是否喜欢它存在 :) - user520100

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接