16

我注意到我应该在后台运行的应用程序(服务)由于 HttpClient 而创建了一个垃圾日志信息日志,如下所示:

info: System.Net.Http.HttpClient.Default.LogicalHandler[100] 开始处理 HTTP 请求 POST https://localhost:44317/programmatic/getcontent info: System.Net.Http.HttpClient.Default.ClientHandler[100] 发送 HTTP请求 POST https://localhost:44317/programmatic/getcontent信息:System.Net.Http.HttpClient.Default.ClientHandler[101] 在 3027.6345 毫秒后收到 HTTP 响应 - 确定信息:System.Net.Http.HttpClient.Default.LogicalHandler [101] 3028.2987 毫秒后结束处理 HTTP 请求 - 确定信息:System.Net.Http.HttpClient.Default.ClientHandler [101] 3052.4709 毫秒后收到 HTTP 响应 - 确定信息:System.Net.Http.HttpClient.Default.LogicalHandler [ 101] 在 3053.467 毫秒后结束处理 HTTP 请求 - OK

有没有办法在任何地方配置它?

我像这样注入客户端工厂:

serviceCollection.AddHttpClient();

然后像这样创建一个客户端:

HttpClient client = _clientFactory.CreateClient();
4

2 回答 2

11

您可以通过 Appsettings 文件在 .NET Core 中配置日志记录。您应该在appsettings.json文件中找到一个部分

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

您可以添加额外的日志级别过滤器来指定记录所需的最低日志级别。

{
  "Logging": {
    "Debug": {
      "LogLevel": {
        "Default": "Information",
        "System.Net.Http.HttpClient": "Debug"
      }
    }
  }
}

可以在此处找到使用 .NET Core 中的过滤器进行日志记录的文档。

可以在此处找到使用 IHttpClientFactory 库中的过滤器进行日志记录的文档。本文档还包括使用命名 HttpClient 进行日志过滤的示例。

于 2020-03-30T20:52:56.880 回答
3

appsettings.json例如,您可以通过向 Logging 对象添加新行来覆盖日志级别:

  "Logging": {
    "LogLevel": {
      "System.Net.Http.HttpClient": "Warning"
    }
  },

这将记录任何Warning级别及以上的内容。

于 2020-03-30T20:48:31.600 回答