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);
                }
            }
                );
        }
Example #2
0
        /// <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);
        }