HttpClientBuilderExtensions.AddLogger 方法

定义

重载

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

添加一个委托,该委托将用于为命名 HttpClient创建其他记录器。 自定义记录器将从专用日志记录 DelegatingHandler 中针对相应的名为 HttpClient的 的每个请求调用。

AddLogger<TLogger>(IHttpClientBuilder, Boolean)

添加一个委托,该委托将用于为命名 HttpClient创建其他记录器。 自定义记录器将从专用日志记录 DelegatingHandler 中针对相应的名为 HttpClient的 的每个请求调用。

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

Source:
HttpClientBuilderExtensions.Logging.cs
Source:
HttpClientBuilderExtensions.Logging.cs
Source:
HttpClientBuilderExtensions.Logging.cs
Source:
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

true 将具有自定义记录器的日志记录处理程序添加到其他处理程序链的开头; false 将其添加到链的末尾。

返回

可用于配置客户端的 IHttpClientBuilder

注解

如果 wrapHandlersPipeline 为“true”, LogRequestStart(HttpRequestMessage)LogRequestStartAsync(HttpRequestMessage, CancellationToken) 则会在链中所有其他处理程序之前执行 。 LogRequestStop(Object, HttpRequestMessage, HttpResponseMessage, TimeSpan)LogRequestStopAsync(Object, HttpRequestMessage, HttpResponseMessage, TimeSpan, CancellationToken) 将在所有其他附加处理程序之后执行,实质上是包装整个管道。

如果 wrapHandlersPipeline 为“false”, LogRequestStart(HttpRequestMessage)LogRequestStartAsync(HttpRequestMessage, CancellationToken) 则会在链中的所有其他处理程序之后执行,直接在主处理程序之前执行。 LogRequestStop(Object, HttpRequestMessage, HttpResponseMessage, TimeSpan)LogRequestStopAsync(Object, HttpRequestMessage, HttpResponseMessage, TimeSpan, CancellationToken) 将在所有其他附加处理程序之前执行,直接在主处理程序之后执行。

提供给 httpClientLoggerFactory 的参数IServiceProvider将是对共享所构造处理程序链生存期的作用域服务提供程序的引用。

如果 AddLogger(IHttpClientBuilder, Func<IServiceProvider,IHttpClientLogger>, Boolean) 多次调用 ,则会添加多个记录器。 如果在 RemoveAllLoggers(IHttpClientBuilder) 调用 AddLogger(IHttpClientBuilder, Func<IServiceProvider,IHttpClientLogger>, Boolean)之前未调用 ,则除默认记录器外,还会添加新记录器。

适用于

AddLogger<TLogger>(IHttpClientBuilder, Boolean)

Source:
HttpClientBuilderExtensions.Logging.cs
Source:
HttpClientBuilderExtensions.Logging.cs
Source:
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

true 将具有自定义记录器的日志记录处理程序添加到其他处理程序链的开头; false 将其添加到链的末尾。

返回

可用于配置客户端的 IHttpClientBuilder

注解

如果 wrapHandlersPipeline 为“true”, LogRequestStart(HttpRequestMessage)LogRequestStartAsync(HttpRequestMessage, CancellationToken) 则会在链中所有其他处理程序之前执行 。 LogRequestStop(Object, HttpRequestMessage, HttpResponseMessage, TimeSpan)LogRequestStopAsync(Object, HttpRequestMessage, HttpResponseMessage, TimeSpan, CancellationToken) 将在所有其他附加处理程序之后执行,实质上是包装整个管道。

如果 wrapHandlersPipeline 为“false”, 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)之前未调用 ,则除默认记录器外,还会添加新记录器。

适用于