Table of Contents

Class ExtendedHttpTracerHandler

Namespace
Apizr.Logging
Assembly
Apizr.dll

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 IApizrManagerOptionsBase

Apizr options

ExtendedHttpTracerHandler(HttpMessageHandler, IApizrManagerOptionsBase)

Constructs the ExtendedHttpTracerHandler with a custom ILogger and a custom HttpMessageHandler

public ExtendedHttpTracerHandler(HttpMessageHandler handler, IApizrManagerOptionsBase apizrOptions)

Parameters

handler HttpMessageHandler

User defined HttpMessageHandler

apizrOptions IApizrManagerOptionsBase

Apizr options

Fields

LogMessageIndicatorPrefix

public static string LogMessageIndicatorPrefix

Field Value

string

LogMessageIndicatorSuffix

public static string LogMessageIndicatorSuffix

Field Value

string

Properties

DefaultDurationFormat

Duration string format. Defaults to "Duration: {0:ss\:fffffff}"

public static string DefaultDurationFormat { get; set; }

Property Value

string

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 HttpRequestMessage

The request

Returns

Task<string>

GetResponseBody(HttpResponseMessage)

Get the response body

protected Task<string> GetResponseBody(HttpResponseMessage response)

Parameters

response HttpResponseMessage

The response

Returns

Task<string>

LogHttpException(HttpRequestMessage, Exception, ILogger, LogLevel[])

Logs Http exceptions

protected void LogHttpException(HttpRequestMessage request, Exception ex, ILogger logger, LogLevel[] logLevels)

Parameters

request HttpRequestMessage

The request

ex Exception

The exception

logger ILogger

The 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 HttpRequestMessage

The request

logger ILogger

The logger

logLevels LogLevel[]

The log levels

verbosity HttpMessageParts

The verbosity

shouldRedactHeaderValue Func<string, bool>

Header values redaction rules

Returns

Task

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 HttpResponseMessage

The response

duration TimeSpan

The duration

logger ILogger

The logger

logLevels LogLevel[]

The log levels

verbosity HttpMessageParts

The verbosity

shouldRedactHeaderValue Func<string, bool>

Header values redaction rules

Returns

Task

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 HttpRequestMessage

The HTTP request message to send to the server.

cancellationToken CancellationToken

A cancellation token to cancel operation.

Returns

Task<HttpResponseMessage>

Returns Task<TResult>. The task object representing the asynchronous operation.

Exceptions

ArgumentNullException

The request was null.