This repository has been archived on 2025-05-19. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
novaloop.paymoapi/src/Shared/PaymoLoggingHandler.cs
2021-12-17 15:28:16 +01:00

45 lines
1.3 KiB
C#

using System.Net.Http;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
namespace Novaloop.PaymoApi.Shared
{
public class PaymoLoggingHandler : DelegatingHandler
{
private readonly ILogger<PaymoLoggingHandler> _logger;
public PaymoLoggingHandler(ILogger<PaymoLoggingHandler> logger)
{
_logger = logger;
}
public PaymoLoggingHandler(HttpMessageHandler innerHandler, ILogger<PaymoLoggingHandler> logger)
: base(innerHandler)
{
_logger = logger;
}
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
_logger.LogDebug($"Request:\n{request}");
if (request.Content != null)
{
var body = await request.Content.ReadAsStringAsync();
_logger.LogDebug(body);
}
var response = await base.SendAsync(request, cancellationToken);
_logger.LogDebug($"Response:\n{response}");
if (response.Content != null)
{
var body = await response.Content.ReadAsStringAsync();
_logger.LogDebug(body);
}
return response;
}
}
}