-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
IHttpClientAsyncLogger.xml
174 lines (174 loc) · 14.7 KB
/
IHttpClientAsyncLogger.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
<Type Name="IHttpClientAsyncLogger" FullName="Microsoft.Extensions.Http.Logging.IHttpClientAsyncLogger">
<TypeSignature Language="C#" Value="public interface IHttpClientAsyncLogger : Microsoft.Extensions.Http.Logging.IHttpClientLogger" />
<TypeSignature Language="ILAsm" Value=".class public interface auto ansi abstract beforefieldinit IHttpClientAsyncLogger implements class Microsoft.Extensions.Http.Logging.IHttpClientLogger" />
<TypeSignature Language="DocId" Value="T:Microsoft.Extensions.Http.Logging.IHttpClientAsyncLogger" />
<TypeSignature Language="VB.NET" Value="Public Interface IHttpClientAsyncLogger
Implements IHttpClientLogger" />
<TypeSignature Language="F#" Value="type IHttpClientAsyncLogger = interface
 interface IHttpClientLogger" />
<TypeSignature Language="C++ CLI" Value="public interface class IHttpClientAsyncLogger : Microsoft::Extensions::Http::Logging::IHttpClientLogger" />
<AssemblyInfo>
<AssemblyName>Microsoft.Extensions.Http</AssemblyName>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Interfaces>
<Interface>
<InterfaceName>Microsoft.Extensions.Http.Logging.IHttpClientLogger</InterfaceName>
</Interface>
</Interfaces>
<Attributes>
<Attribute FrameworkAlternate="net-8.0;net-9.0">
<AttributeName Language="C#">[System.Runtime.CompilerServices.NullableContext(1)]</AttributeName>
<AttributeName Language="F#">[<System.Runtime.CompilerServices.NullableContext(1)>]</AttributeName>
</Attribute>
</Attributes>
<Docs>
<summary>
An abstraction for asyncronous custom HTTP request logging for a named <see cref="T:System.Net.Http.HttpClient" /> instances returned by <see cref="T:System.Net.Http.IHttpClientFactory" />.
</summary>
<remarks>
<para>
Asyncronous methods (such as <see cref="M:Microsoft.Extensions.Http.Logging.IHttpClientAsyncLogger.LogRequestStartAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)" />) would be called from async code paths (such as
<see cref="M:System.Net.Http.HttpClient.SendAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)" />), and their
syncronous counterparts inherited from <see cref="T:Microsoft.Extensions.Http.Logging.IHttpClientLogger" /> (such as <see cref="M:Microsoft.Extensions.Http.Logging.IHttpClientLogger.LogRequestStart(System.Net.Http.HttpRequestMessage)" />)
would be called from the corresponding sync code paths.
</para>
<para>
It is up to the user implementing the interface to decide where (to <see cref="T:Microsoft.Extensions.Logging.ILogger" />, or anything else) and what exactly to log.
However, the implementation should be mindful about potential adverse side effects of accessing some of the <see cref="T:System.Net.Http.HttpRequestMessage" /> or
<see cref="T:System.Net.Http.HttpResponseMessage" /> properties, such as reading from a content stream; if possible, such behavior should be avoided.
</para>
<para>
Logging implementation also should not throw any exceptions, as an unhandled exception in logging would fail the request.
</para>
</remarks>
</Docs>
<Members>
<Member MemberName="LogRequestFailedAsync">
<MemberSignature Language="C#" Value="public System.Threading.Tasks.ValueTask LogRequestFailedAsync (object? context, System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpResponseMessage? response, Exception exception, TimeSpan elapsed, System.Threading.CancellationToken cancellationToken = default);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance valuetype System.Threading.Tasks.ValueTask LogRequestFailedAsync(object context, class System.Net.Http.HttpRequestMessage request, class System.Net.Http.HttpResponseMessage response, class System.Exception exception, valuetype System.TimeSpan elapsed, valuetype System.Threading.CancellationToken cancellationToken) cil managed" />
<MemberSignature Language="DocId" Value="M:Microsoft.Extensions.Http.Logging.IHttpClientAsyncLogger.LogRequestFailedAsync(System.Object,System.Net.Http.HttpRequestMessage,System.Net.Http.HttpResponseMessage,System.Exception,System.TimeSpan,System.Threading.CancellationToken)" />
<MemberSignature Language="VB.NET" Value="Public Function LogRequestFailedAsync (context As Object, request As HttpRequestMessage, response As HttpResponseMessage, exception As Exception, elapsed As TimeSpan, Optional cancellationToken As CancellationToken = Nothing) As ValueTask" />
<MemberSignature Language="F#" Value="abstract member LogRequestFailedAsync : obj * System.Net.Http.HttpRequestMessage * System.Net.Http.HttpResponseMessage * Exception * TimeSpan * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask" Usage="iHttpClientAsyncLogger.LogRequestFailedAsync (context, request, response, exception, elapsed, cancellationToken)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>Microsoft.Extensions.Http</AssemblyName>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Threading.Tasks.ValueTask</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="context" Type="System.Object">
<Attributes>
<Attribute FrameworkAlternate="net-8.0;net-9.0">
<AttributeName Language="C#">[System.Runtime.CompilerServices.Nullable(2)]</AttributeName>
<AttributeName Language="F#">[<System.Runtime.CompilerServices.Nullable(2)>]</AttributeName>
</Attribute>
</Attributes>
</Parameter>
<Parameter Name="request" Type="System.Net.Http.HttpRequestMessage" />
<Parameter Name="response" Type="System.Net.Http.HttpResponseMessage">
<Attributes>
<Attribute FrameworkAlternate="net-8.0;net-9.0">
<AttributeName Language="C#">[System.Runtime.CompilerServices.Nullable(2)]</AttributeName>
<AttributeName Language="F#">[<System.Runtime.CompilerServices.Nullable(2)>]</AttributeName>
</Attribute>
</Attributes>
</Parameter>
<Parameter Name="exception" Type="System.Exception" />
<Parameter Name="elapsed" Type="System.TimeSpan" />
<Parameter Name="cancellationToken" Type="System.Threading.CancellationToken" />
</Parameters>
<Docs>
<param name="context">The context object that was previously returned by <see cref="M:Microsoft.Extensions.Http.Logging.IHttpClientAsyncLogger.LogRequestStartAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)" />.</param>
<param name="request">The HTTP request message that was sent.</param>
<param name="response">If available, the HTTP response message that was received, and `null` otherwise.</param>
<param name="exception">Exception that happened during processing the HTTP request.</param>
<param name="elapsed">Time elapsed since calling <see cref="M:Microsoft.Extensions.Http.Logging.IHttpClientAsyncLogger.LogRequestStartAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)" />.</param>
<param name="cancellationToken">The cancellation token to cancel operation.</param>
<summary>
Logs the exception happened while sending an HTTP request.
</summary>
<returns>The task object representing the asynchronous operation.</returns>
<remarks>To be added.</remarks>
<exception cref="T:System.OperationCanceledException">The cancellation token was canceled. This exception is stored into the returned task.</exception>
</Docs>
</Member>
<Member MemberName="LogRequestStartAsync">
<MemberSignature Language="C#" Value="public System.Threading.Tasks.ValueTask<object?> LogRequestStartAsync (System.Net.Http.HttpRequestMessage request, System.Threading.CancellationToken cancellationToken = default);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance valuetype System.Threading.Tasks.ValueTask`1<object> LogRequestStartAsync(class System.Net.Http.HttpRequestMessage request, valuetype System.Threading.CancellationToken cancellationToken) cil managed" />
<MemberSignature Language="DocId" Value="M:Microsoft.Extensions.Http.Logging.IHttpClientAsyncLogger.LogRequestStartAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)" />
<MemberSignature Language="VB.NET" Value="Public Function LogRequestStartAsync (request As HttpRequestMessage, Optional cancellationToken As CancellationToken = Nothing) As ValueTask(Of Object)" />
<MemberSignature Language="F#" Value="abstract member LogRequestStartAsync : System.Net.Http.HttpRequestMessage * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask<obj>" Usage="iHttpClientAsyncLogger.LogRequestStartAsync (request, cancellationToken)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>Microsoft.Extensions.Http</AssemblyName>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Threading.Tasks.ValueTask<System.Object></ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="request" Type="System.Net.Http.HttpRequestMessage" />
<Parameter Name="cancellationToken" Type="System.Threading.CancellationToken" />
</Parameters>
<Docs>
<param name="request">The HTTP request message that will be sent.</param>
<param name="cancellationToken">The cancellation token to cancel operation.</param>
<summary>
Logs before sending an HTTP request.
</summary>
<returns>The task object representing the asynchronous operation. The result of the operation is a context object that will
be passed to a corresponding <see cref="M:Microsoft.Extensions.Http.Logging.IHttpClientAsyncLogger.LogRequestStopAsync(System.Object,System.Net.Http.HttpRequestMessage,System.Net.Http.HttpResponseMessage,System.TimeSpan,System.Threading.CancellationToken)" /> or <see cref="M:Microsoft.Extensions.Http.Logging.IHttpClientAsyncLogger.LogRequestFailedAsync(System.Object,System.Net.Http.HttpRequestMessage,System.Net.Http.HttpResponseMessage,System.Exception,System.TimeSpan,System.Threading.CancellationToken)" />. Can be `null`
if no context object is needed by the implementation.</returns>
<remarks>To be added.</remarks>
<exception cref="T:System.OperationCanceledException">The cancellation token was canceled. This exception is stored into the returned task.</exception>
</Docs>
</Member>
<Member MemberName="LogRequestStopAsync">
<MemberSignature Language="C#" Value="public System.Threading.Tasks.ValueTask LogRequestStopAsync (object? context, System.Net.Http.HttpRequestMessage request, System.Net.Http.HttpResponseMessage response, TimeSpan elapsed, System.Threading.CancellationToken cancellationToken = default);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig newslot virtual instance valuetype System.Threading.Tasks.ValueTask LogRequestStopAsync(object context, class System.Net.Http.HttpRequestMessage request, class System.Net.Http.HttpResponseMessage response, valuetype System.TimeSpan elapsed, valuetype System.Threading.CancellationToken cancellationToken) cil managed" />
<MemberSignature Language="DocId" Value="M:Microsoft.Extensions.Http.Logging.IHttpClientAsyncLogger.LogRequestStopAsync(System.Object,System.Net.Http.HttpRequestMessage,System.Net.Http.HttpResponseMessage,System.TimeSpan,System.Threading.CancellationToken)" />
<MemberSignature Language="VB.NET" Value="Public Function LogRequestStopAsync (context As Object, request As HttpRequestMessage, response As HttpResponseMessage, elapsed As TimeSpan, Optional cancellationToken As CancellationToken = Nothing) As ValueTask" />
<MemberSignature Language="F#" Value="abstract member LogRequestStopAsync : obj * System.Net.Http.HttpRequestMessage * System.Net.Http.HttpResponseMessage * TimeSpan * System.Threading.CancellationToken -> System.Threading.Tasks.ValueTask" Usage="iHttpClientAsyncLogger.LogRequestStopAsync (context, request, response, elapsed, cancellationToken)" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyName>Microsoft.Extensions.Http</AssemblyName>
<AssemblyVersion>8.0.0.0</AssemblyVersion>
<AssemblyVersion>9.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Threading.Tasks.ValueTask</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="context" Type="System.Object">
<Attributes>
<Attribute FrameworkAlternate="net-8.0;net-9.0">
<AttributeName Language="C#">[System.Runtime.CompilerServices.Nullable(2)]</AttributeName>
<AttributeName Language="F#">[<System.Runtime.CompilerServices.Nullable(2)>]</AttributeName>
</Attribute>
</Attributes>
</Parameter>
<Parameter Name="request" Type="System.Net.Http.HttpRequestMessage" />
<Parameter Name="response" Type="System.Net.Http.HttpResponseMessage" />
<Parameter Name="elapsed" Type="System.TimeSpan" />
<Parameter Name="cancellationToken" Type="System.Threading.CancellationToken" />
</Parameters>
<Docs>
<param name="context">The context object that was previously returned by <see cref="M:Microsoft.Extensions.Http.Logging.IHttpClientAsyncLogger.LogRequestStartAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)" />.</param>
<param name="request">The HTTP request message that was sent.</param>
<param name="response">The HTTP response message that was received.</param>
<param name="elapsed">Time elapsed since calling <see cref="M:Microsoft.Extensions.Http.Logging.IHttpClientAsyncLogger.LogRequestStartAsync(System.Net.Http.HttpRequestMessage,System.Threading.CancellationToken)" />.</param>
<param name="cancellationToken">The cancellation token to cancel operation.</param>
<summary>
Logs after receiving an HTTP response.
</summary>
<returns>The task object representing the asynchronous operation.</returns>
<remarks>To be added.</remarks>
<exception cref="T:System.OperationCanceledException">The cancellation token was canceled. This exception is stored into the returned task.</exception>
</Docs>
</Member>
</Members>
</Type>