ITraceWriterExtensions.TraceBeginEndAsync Method (ITraceWriter, HttpRequestMessage, String, TraceLevel, String, String, Action<TraceRecord>, Func<Task>, Action<TraceRecord>, Action<TraceRecord>)

Traces both a begin and an end trace around a specified operation.

Namespace:  System.Web.Http.Tracing
Assembly:  System.Web.Http (in System.Web.Http.dll)

Syntax

'Declaration
<ExtensionAttribute> _
Public Shared Function TraceBeginEndAsync ( _
    traceWriter As ITraceWriter, _
    request As HttpRequestMessage, _
    category As String, _
    level As TraceLevel, _
    operatorName As String, _
    operationName As String, _
    beginTrace As Action(Of TraceRecord), _
    execute As Func(Of Task), _
    endTrace As Action(Of TraceRecord), _
    errorTrace As Action(Of TraceRecord) _
) As Task
'Usage
Dim traceWriter As ITraceWriter 
Dim request As HttpRequestMessage 
Dim category As String 
Dim level As TraceLevel 
Dim operatorName As String 
Dim operationName As String 
Dim beginTrace As Action(Of TraceRecord)
Dim execute As Func(Of Task)
Dim endTrace As Action(Of TraceRecord)
Dim errorTrace As Action(Of TraceRecord)
Dim returnValue As Task 

returnValue = traceWriter.TraceBeginEndAsync(request, _
    category, level, operatorName, operationName, _
    beginTrace, execute, endTrace, errorTrace)
public static Task TraceBeginEndAsync(
    this ITraceWriter traceWriter,
    HttpRequestMessage request,
    string category,
    TraceLevel level,
    string operatorName,
    string operationName,
    Action<TraceRecord> beginTrace,
    Func<Task> execute,
    Action<TraceRecord> endTrace,
    Action<TraceRecord> errorTrace
)
[ExtensionAttribute]
public:
static Task^ TraceBeginEndAsync(
    ITraceWriter^ traceWriter, 
    HttpRequestMessage^ request, 
    String^ category, 
    TraceLevel level, 
    String^ operatorName, 
    String^ operationName, 
    Action<TraceRecord^>^ beginTrace, 
    Func<Task^>^ execute, 
    Action<TraceRecord^>^ endTrace, 
    Action<TraceRecord^>^ errorTrace
)
static member TraceBeginEndAsync : 
        traceWriter:ITraceWriter * 
        request:HttpRequestMessage * 
        category:string * 
        level:TraceLevel * 
        operatorName:string * 
        operationName:string * 
        beginTrace:Action<TraceRecord> * 
        execute:Func<Task> * 
        endTrace:Action<TraceRecord> * 
        errorTrace:Action<TraceRecord> -> Task
public static function TraceBeginEndAsync(
    traceWriter : ITraceWriter, 
    request : HttpRequestMessage, 
    category : String, 
    level : TraceLevel, 
    operatorName : String, 
    operationName : String, 
    beginTrace : Action<TraceRecord>, 
    execute : Func<Task>, 
    endTrace : Action<TraceRecord>, 
    errorTrace : Action<TraceRecord>
) : Task

Parameters

  • request
    Type: HttpRequestMessage
    The HttpRequestMessage with which to associate the trace. It may be null.
  • category
    Type: System.String
    The logical category of the trace.
  • operatorName
    Type: System.String
    The name of the object performing the operation. It may be null.
  • operationName
    Type: System.String
    The name of the operation being performed. It may be null.
  • execute
    Type: System.Func<Task>
    An <see cref="T:System.Func`1" /> that returns the Task that will perform the operation.

Return Value

Type: System.Threading.Tasks.Task
The Task returned by the operation.

Usage Note

In Visual Basic and C#, you can call this method as an instance method on any object of type ITraceWriter. When you use instance method syntax to call this method, omit the first parameter. For more information, see https://msdn.microsoft.com/en-us/library/bb384936(v=vs.118) or https://msdn.microsoft.com/en-us/library/bb383977(v=vs.118).

Remarks

The end trace will occur when the asynchronous operation completes, either success or failure.

See Also

Reference

ITraceWriterExtensions Class

TraceBeginEndAsync Overload

System.Web.Http.Tracing Namespace