Class ExtendedHttpTracerHandler
The Http tracer delegating handler
public class ExtendedHttpTracerHandler : DelegatingHandler, IDisposable
- Inheritance
-
ExtendedHttpTracerHandler
- Implements
- Inherited Members
Constructors
ExtendedHttpTracerHandler(IApizrManagerOptionsBase)
Constructs the ExtendedHttpTracerHandler with a custom ILogger and a custom HttpMessageHandler
public ExtendedHttpTracerHandler(IApizrManagerOptionsBase apizrOptions)
Parameters
apizrOptionsIApizrManagerOptionsBaseApizr options
ExtendedHttpTracerHandler(HttpMessageHandler, IApizrManagerOptionsBase)
Constructs the ExtendedHttpTracerHandler with a custom ILogger and a custom HttpMessageHandler
public ExtendedHttpTracerHandler(HttpMessageHandler handler, IApizrManagerOptionsBase apizrOptions)
Parameters
handlerHttpMessageHandlerUser defined HttpMessageHandler
apizrOptionsIApizrManagerOptionsBaseApizr options
Fields
LogMessageIndicatorPrefix
public static string LogMessageIndicatorPrefix
Field Value
LogMessageIndicatorSuffix
public static string LogMessageIndicatorSuffix
Field Value
Properties
DefaultDurationFormat
Duration string format. Defaults to "Duration: {0:ss\:fffffff}"
public static string DefaultDurationFormat { get; set; }
Property Value
Remarks
Receives a TimeSpan at the [0] index.
See https://docs.microsoft.com/en-us/dotnet/standard/base-types/standard-timespan-format-strings for more details on TimeSpan formatting.
Methods
GetRequestBody(HttpRequestMessage)
Get the request body
protected Task<string> GetRequestBody(HttpRequestMessage request)
Parameters
requestHttpRequestMessageThe request
Returns
GetResponseBody(HttpResponseMessage)
Get the response body
protected Task<string> GetResponseBody(HttpResponseMessage response)
Parameters
responseHttpResponseMessageThe response
Returns
LogHttpException(HttpRequestMessage, Exception, ILogger, LogLevel[])
Logs Http exceptions
protected void LogHttpException(HttpRequestMessage request, Exception ex, ILogger logger, LogLevel[] logLevels)
Parameters
requestHttpRequestMessageThe request
exExceptionThe exception
loggerILoggerThe logger
logLevelsLogLevel[]The log levels
LogHttpRequest(HttpRequestMessage, ILogger, LogLevel[], HttpMessageParts, Func<string, bool>)
Logs Http request
protected virtual Task LogHttpRequest(HttpRequestMessage request, ILogger logger, LogLevel[] logLevels, HttpMessageParts verbosity, Func<string, bool> shouldRedactHeaderValue)
Parameters
requestHttpRequestMessageThe request
loggerILoggerThe logger
logLevelsLogLevel[]The log levels
verbosityHttpMessagePartsThe verbosity
shouldRedactHeaderValueFunc<string, bool>Header values redaction rules
Returns
LogHttpResponse(HttpResponseMessage, TimeSpan, ILogger, LogLevel[], HttpMessageParts, Func<string, bool>)
Logs Http response
protected virtual Task LogHttpResponse(HttpResponseMessage response, TimeSpan duration, ILogger logger, LogLevel[] logLevels, HttpMessageParts verbosity, Func<string, bool> shouldRedactHeaderValue)
Parameters
responseHttpResponseMessageThe response
durationTimeSpanThe duration
loggerILoggerThe logger
logLevelsLogLevel[]The log levels
verbosityHttpMessagePartsThe verbosity
shouldRedactHeaderValueFunc<string, bool>Header values redaction rules
Returns
SendAsync(HttpRequestMessage, CancellationToken)
Sends an HTTP request to the inner handler to send to the server as an asynchronous operation.
protected override Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
Parameters
requestHttpRequestMessageThe HTTP request message to send to the server.
cancellationTokenCancellationTokenA cancellation token to cancel operation.
Returns
- Task<HttpResponseMessage>
Returns Task<TResult>. The task object representing the asynchronous operation.
Exceptions
- ArgumentNullException
The
requestwas null.