Add logging support to ReCClient and related APIs

Updated the `ReCClient` constructor to include an optional `ILogger` parameter for logging API call outcomes. Added support for both .NET Framework and other frameworks by using non-generic and generic `ILogger` types, respectively. Updated API-related objects (`RecActionApi`, `ResultApi`, etc.) to accept and utilize the `ILogger` instance for enhanced logging functionality.
This commit is contained in:
2026-05-19 19:08:30 +02:00
parent 190d41489e
commit 7ed348832c

View File

@@ -1,4 +1,5 @@
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using System; using System;
using System.Net.Http; using System.Net.Http;
using ReC.Client.Api; using ReC.Client.Api;
@@ -56,16 +57,21 @@ namespace ReC.Client
/// Initializes a new instance of the <see cref="ReCClient"/> class. /// Initializes a new instance of the <see cref="ReCClient"/> class.
/// </summary> /// </summary>
/// <param name="httpClientFactory">The factory to create HttpClients.</param> /// <param name="httpClientFactory">The factory to create HttpClients.</param>
public ReCClient(IHttpClientFactory httpClientFactory) /// <param name="logger">An optional logger used to record API call outcomes.</param>
#if NETFRAMEWORK
public ReCClient(IHttpClientFactory httpClientFactory, ILogger logger = null)
#else
public ReCClient(IHttpClientFactory httpClientFactory, ILogger<ReCClient>? logger = null)
#endif
{ {
_http = httpClientFactory.CreateClient(ClientName); _http = httpClientFactory.CreateClient(ClientName);
RecActions = new RecActionApi(_http); RecActions = new RecActionApi(_http, logger);
Results = new ResultApi(_http); Results = new ResultApi(_http, logger);
Profiles = new ProfileApi(_http); Profiles = new ProfileApi(_http, logger);
EndpointAuth = new EndpointAuthApi(_http); EndpointAuth = new EndpointAuthApi(_http, logger);
EndpointParams = new EndpointParamsApi(_http); EndpointParams = new EndpointParamsApi(_http, logger);
Endpoints = new EndpointsApi(_http); Endpoints = new EndpointsApi(_http, logger);
Common = new CommonApi(_http); Common = new CommonApi(_http, logger);
} }
#region Static #region Static