HttpClientBuilderExtensions.AddLogger 方法

定義

多載

名稱 Description
AddLogger(IHttpClientBuilder, Func<IServiceProvider,IHttpClientLogger>, Boolean)

新增一個代理,用於建立一個名為 HttpClient的 的額外記錄器。 自訂日誌會從專用的日誌 DelegatingHandler 中,對應的 HttpClient

AddLogger<TLogger>(IHttpClientBuilder, Boolean)

新增一個代理,用於建立一個名為 HttpClient的 的額外記錄器。 自訂日誌會從專用的日誌 DelegatingHandler 中,對應的 HttpClient

AddLogger(IHttpClientBuilder, Func<IServiceProvider,IHttpClientLogger>, Boolean)

來源:
HttpClientBuilderExtensions.Logging.cs
來源:
HttpClientBuilderExtensions.Logging.cs
來源:
HttpClientBuilderExtensions.Logging.cs
來源:
HttpClientBuilderExtensions.Logging.cs

新增一個代理,用於建立一個名為 HttpClient的 的額外記錄器。 自訂日誌會從專用的日誌 DelegatingHandler 中,對應的 HttpClient

public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddLogger(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, Func<IServiceProvider,Microsoft.Extensions.Http.Logging.IHttpClientLogger> httpClientLoggerFactory, bool wrapHandlersPipeline = false);
static member AddLogger : Microsoft.Extensions.DependencyInjection.IHttpClientBuilder * Func<IServiceProvider, Microsoft.Extensions.Http.Logging.IHttpClientLogger> * bool -> Microsoft.Extensions.DependencyInjection.IHttpClientBuilder
<Extension()>
Public Function AddLogger (builder As IHttpClientBuilder, httpClientLoggerFactory As Func(Of IServiceProvider, IHttpClientLogger), Optional wrapHandlersPipeline As Boolean = false) As IHttpClientBuilder

參數

httpClientLoggerFactory
Func<IServiceProvider,IHttpClientLogger>

一個用來建立自訂記錄器的代理檔。 記錄器應該實作 IHttpClientLoggerIHttpClientAsyncLogger

wrapHandlersPipeline
Boolean

至於帶有自訂記錄器的日誌處理器會被加入額外處理器鏈的頂端還是底部。

傳回

一個 IHttpClientBuilder 可以用來設定客戶端的

備註

如果 是 wrapHandlersPipeline 「真」, LogRequestStart(HttpRequestMessage)LogRequestStartAsync(HttpRequestMessage, CancellationToken) 會在鏈中其他所有其他處理器之前執行。 LogRequestStop(Object, HttpRequestMessage, HttpResponseMessage, TimeSpan) LogRequestStopAsync(Object, HttpRequestMessage, HttpResponseMessage, TimeSpan, CancellationToken)且會在所有其他額外處理器之後執行,基本上是整個管線的包裝。

若 為 wrapHandlersPipeline 「假」, LogRequestStart(HttpRequestMessage)LogRequestStartAsync(HttpRequestMessage, CancellationToken) 則會在鏈中其他所有額外處理器之後,在主要處理器之前執行。 LogRequestStop(Object, HttpRequestMessage, HttpResponseMessage, TimeSpan) LogRequestStopAsync(Object, HttpRequestMessage, HttpResponseMessage, TimeSpan, CancellationToken)並且會在所有其他其他處理者之前執行,緊接著主要處理者之後。

IServiceProviderhttpClientLoggerFactory提供的參數將是參考一個有作用域的服務提供者,該服務提供者共享所建構處理者鏈的壽命。

如果 AddLogger(IHttpClientBuilder, Func<IServiceProvider,IHttpClientLogger>, Boolean) 呼叫多次,會新增多個記錄器。 如果 RemoveAllLoggers(IHttpClientBuilder) 在呼叫 AddLogger(IHttpClientBuilder, Func<IServiceProvider,IHttpClientLogger>, Boolean)前未被呼叫,則除了預設的記錄器外,還會新增新的記錄器。

適用於

AddLogger<TLogger>(IHttpClientBuilder, Boolean)

來源:
HttpClientBuilderExtensions.Logging.cs
來源:
HttpClientBuilderExtensions.Logging.cs
來源:
HttpClientBuilderExtensions.Logging.cs
來源:
HttpClientBuilderExtensions.Logging.cs

新增一個代理,用於建立一個名為 HttpClient的 的額外記錄器。 自訂日誌會從專用的日誌 DelegatingHandler 中,對應的 HttpClient

public static Microsoft.Extensions.DependencyInjection.IHttpClientBuilder AddLogger<TLogger>(this Microsoft.Extensions.DependencyInjection.IHttpClientBuilder builder, bool wrapHandlersPipeline = false) where TLogger : Microsoft.Extensions.Http.Logging.IHttpClientLogger;
static member AddLogger : Microsoft.Extensions.DependencyInjection.IHttpClientBuilder * bool -> Microsoft.Extensions.DependencyInjection.IHttpClientBuilder (requires 'Logger :> Microsoft.Extensions.Http.Logging.IHttpClientLogger)
<Extension()>
Public Function AddLogger(Of TLogger As IHttpClientLogger) (builder As IHttpClientBuilder, Optional wrapHandlersPipeline As Boolean = false) As IHttpClientBuilder

類型參數

TLogger

自訂記錄器的服務類型,因為它是在 DI 中註冊的。 記錄器應該實作 IHttpClientLoggerIHttpClientAsyncLogger

參數

wrapHandlersPipeline
Boolean

至於帶有自訂記錄器的日誌處理器會被加入額外處理器鏈的頂端還是底部。

傳回

一個 IHttpClientBuilder 可以用來設定客戶端的

備註

如果 是 wrapHandlersPipeline 「真」, LogRequestStart(HttpRequestMessage)LogRequestStartAsync(HttpRequestMessage, CancellationToken) 會在鏈中其他所有其他處理器之前執行。 LogRequestStop(Object, HttpRequestMessage, HttpResponseMessage, TimeSpan) LogRequestStopAsync(Object, HttpRequestMessage, HttpResponseMessage, TimeSpan, CancellationToken)且會在所有其他額外處理器之後執行,基本上是整個管線的包裝。

若 為 wrapHandlersPipeline 「假」, LogRequestStart(HttpRequestMessage)LogRequestStartAsync(HttpRequestMessage, CancellationToken) 則會在鏈中其他所有額外處理器之後,在主要處理器之前執行。 LogRequestStop(Object, HttpRequestMessage, HttpResponseMessage, TimeSpan) LogRequestStopAsync(Object, HttpRequestMessage, HttpResponseMessage, TimeSpan, CancellationToken)並且會在所有其他其他處理者之前執行,緊接著主要處理者之後。

此問題 TLogger 將由一個共享處理鏈生命週期的有範圍服務提供者解決。

如果 AddLogger<TLogger>(IHttpClientBuilder, Boolean) 呼叫多次,會新增多個記錄器。 如果 RemoveAllLoggers(IHttpClientBuilder) 在呼叫 AddLogger<TLogger>(IHttpClientBuilder, Boolean)前未被呼叫,則除了預設的記錄器外,還會新增新的記錄器。

適用於