private static void TraceError( this ITraceWriter traceWriter, Exception exception, HttpRequestMessage request, string category, string operatorName, string operationName, Action <TraceRecord> errorTrace ) { TraceLevel traceLevel = TraceWriterExceptionMapper.GetMappedTraceLevel(exception) ?? TraceLevel.Error; traceWriter.Trace( request, category, traceLevel, (traceRecord) => { traceRecord.Kind = TraceKind.End; traceRecord.Operator = operatorName; traceRecord.Operation = operationName; traceRecord.Exception = exception; TraceWriterExceptionMapper.TranslateHttpResponseException(traceRecord); if (errorTrace != null) { errorTrace(traceRecord); } } ); }
/// <summary> /// Examines the given <see cref="TraceRecord"/> to determine whether it /// contains an <see cref="HttpResponseException"/> and if so, modifies /// the <see cref="TraceRecord"/> to capture more detailed information. /// </summary> /// <param name="traceRecord">The <see cref="TraceRecord"/> to examine and modify.</param> public virtual void TranslateHttpResponseException(TraceRecord traceRecord) { if (traceRecord == null) { throw Error.ArgumentNull("traceRecord"); } TraceWriterExceptionMapper.TranslateHttpResponseException(traceRecord); }