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
apizrOptions
IApizrManagerOptionsBaseApizr options
ExtendedHttpTracerHandler(HttpMessageHandler, IApizrManagerOptionsBase)
Constructs the ExtendedHttpTracerHandler with a custom ILogger and a custom HttpMessageHandler
public ExtendedHttpTracerHandler(HttpMessageHandler handler, IApizrManagerOptionsBase apizrOptions)
Parameters
handler
HttpMessageHandlerUser defined HttpMessageHandler
apizrOptions
IApizrManagerOptionsBaseApizr 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
request
HttpRequestMessageThe request
Returns
GetResponseBody(HttpResponseMessage)
Get the response body
protected Task<string> GetResponseBody(HttpResponseMessage response)
Parameters
response
HttpResponseMessageThe response
Returns
LogHttpException(HttpRequestMessage, Exception, ILogger, LogLevel[])
Logs Http exceptions
protected void LogHttpException(HttpRequestMessage request, Exception ex, ILogger logger, LogLevel[] logLevels)
Parameters
request
HttpRequestMessageThe request
ex
ExceptionThe exception
logger
ILoggerThe logger
logLevels
LogLevel[]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
request
HttpRequestMessageThe request
logger
ILoggerThe logger
logLevels
LogLevel[]The log levels
verbosity
HttpMessagePartsThe verbosity
shouldRedactHeaderValue
Func<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
response
HttpResponseMessageThe response
duration
TimeSpanThe duration
logger
ILoggerThe logger
logLevels
LogLevel[]The log levels
verbosity
HttpMessagePartsThe verbosity
shouldRedactHeaderValue
Func<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
request
HttpRequestMessageThe HTTP request message to send to the server.
cancellationToken
CancellationTokenA cancellation token to cancel operation.
Returns
- Task<HttpResponseMessage>
Returns Task<TResult>. The task object representing the asynchronous operation.
Exceptions
- ArgumentNullException
The
request
was null.