Skip to content

Commit 4d42101

Browse files
committed
Fix comment
1 parent 3b6a3ca commit 4d42101

File tree

2 files changed

+47
-61
lines changed

2 files changed

+47
-61
lines changed

dotnet/src/webdriver/Remote/HttpCommandExecutor.cs

+47-3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
using System.Net.Http;
2727
using System.Net.Http.Headers;
2828
using System.Text;
29+
using System.Threading;
2930
using System.Threading.Tasks;
3031

3132
namespace OpenQA.Selenium.Remote
@@ -237,9 +238,14 @@ private void CreateHttpClient()
237238

238239
httpClientHandler.Proxy = this.Proxy;
239240

240-
// Use the custom LoggingHandler
241-
var loggingHandler = new ResponseLoggerInterceptor(httpClientHandler);
242-
this.client = new HttpClient(loggingHandler);
241+
HttpMessageHandler handler = httpClientHandler;
242+
243+
if (_logger.IsEnabled(LogEventLevel.Trace))
244+
{
245+
handler = new DiagnosticsHttpHandler(httpClientHandler);
246+
}
247+
248+
this.client = new HttpClient(handler);
243249
this.client.DefaultRequestHeaders.UserAgent.ParseAdd(this.UserAgent);
244250
this.client.DefaultRequestHeaders.Accept.ParseAdd(RequestAcceptHeader);
245251
this.client.DefaultRequestHeaders.ExpectContinue = false;
@@ -387,5 +393,43 @@ private class HttpResponseInfo
387393
public string Body { get; set; }
388394
public string ContentType { get; set; }
389395
}
396+
397+
/// <summary>
398+
/// Internal Diagnostic Handler for HttpCommandExecutor Additional Context
399+
/// </summary>
400+
internal class DiagnosticsHttpHandler : DelegatingHandler
401+
{
402+
private static readonly ILogger _logger = Log.GetLogger<DiagnosticsHttpHandler>();
403+
404+
public DiagnosticsHttpHandler(HttpMessageHandler messageHandler)
405+
: base(messageHandler)
406+
{
407+
}
408+
409+
/// <summary>
410+
/// Sends the specified request and returns the associated response.
411+
/// </summary>
412+
/// <param name="request">The request to be sent.</param>
413+
/// <param name="cancellationToken">A CancellationToken object to allow for cancellation of the request.</param>
414+
/// <returns>The http response message content.</returns>
415+
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
416+
{
417+
if (request.Content != null)
418+
{
419+
var requestContent = await request.Content.ReadAsStringAsync().ConfigureAwait(false);
420+
_logger.Trace($">> Body: {requestContent}");
421+
}
422+
423+
var response = await base.SendAsync(request, cancellationToken).ConfigureAwait(false);
424+
425+
if (!response.IsSuccessStatusCode)
426+
{
427+
var responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
428+
_logger.Trace($"<< Body: {responseContent}");
429+
}
430+
431+
return response;
432+
}
433+
}
390434
}
391435
}

dotnet/src/webdriver/Remote/ResponseLoggerInterceptor.cs

-58
This file was deleted.

0 commit comments

Comments
 (0)