Asp.net-Core

ASP.NET Core 3.1 HttpClient 僅記錄警告和錯誤

  • March 30, 2020

我注意到我應該在後台執行的應用程序(服務)由於 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();

您可以通過 Appsettings 文件在 .NET Core 中配置日誌記錄。您應該在appsettings.json文件中找到一個部分

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

您可以添加額外的日誌級別過濾器來指定記錄所需的最低日誌級別。

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

可以在此處找到使用 .NET Core 中的過濾器進行日誌記錄的文件。

可以在此處找到使用 IHttpClientFactory 庫中的過濾器進行日誌記錄的文件。本文件還包括使用命名 HttpClient 進行日誌過濾的範例。

引用自:https://stackoverflow.com/questions/60939061