HttpClientBuilderExtensions.AddLogger 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
多載
| 名稱 | Description |
|---|---|
| AddLogger(IHttpClientBuilder, Func<IServiceProvider,IHttpClientLogger>, Boolean) |
新增一個代理,用於建立一個名為 HttpClient的 的額外記錄器。 自訂日誌會從專用的日誌 DelegatingHandler 中,對應的 HttpClient。 |
| AddLogger<TLogger>(IHttpClientBuilder, Boolean) |
新增一個代理,用於建立一個名為 HttpClient的 的額外記錄器。 自訂日誌會從專用的日誌 DelegatingHandler 中,對應的 HttpClient。 |
AddLogger(IHttpClientBuilder, Func<IServiceProvider,IHttpClientLogger>, Boolean)
新增一個代理,用於建立一個名為 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
參數
- builder
- IHttpClientBuilder
- httpClientLoggerFactory
- Func<IServiceProvider,IHttpClientLogger>
一個用來建立自訂記錄器的代理檔。 記錄器應該實作 IHttpClientLogger 或 IHttpClientAsyncLogger。
- 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)並且會在所有其他其他處理者之前執行,緊接著主要處理者之後。
IServiceProvider所httpClientLoggerFactory提供的參數將是參考一個有作用域的服務提供者,該服務提供者共享所建構處理者鏈的壽命。
如果 AddLogger(IHttpClientBuilder, Func<IServiceProvider,IHttpClientLogger>, Boolean) 呼叫多次,會新增多個記錄器。 如果 RemoveAllLoggers(IHttpClientBuilder) 在呼叫 AddLogger(IHttpClientBuilder, Func<IServiceProvider,IHttpClientLogger>, Boolean)前未被呼叫,則除了預設的記錄器外,還會新增新的記錄器。
適用於
AddLogger<TLogger>(IHttpClientBuilder, Boolean)
新增一個代理,用於建立一個名為 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 中註冊的。 記錄器應該實作 IHttpClientLogger 或 IHttpClientAsyncLogger。
參數
- builder
- IHttpClientBuilder
- 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)前未被呼叫,則除了預設的記錄器外,還會新增新的記錄器。