Make logging optional in all public APIs (#72)

This commit is contained in:
Stephen Toub 2025-03-13 18:16:21 -04:00 • committed by GitHub
commit 729c8b5eb9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -4,6 +4,7 @@ using McpDotNet.Configuration;
using McpDotNet.Logging;
using McpDotNet.Protocol.Transport;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Logging.Abstractions;
namespace McpDotNet.Client;
/// <summary>
@ -43,10 +44,22 @@ public class McpClientFactory : IDisposable
public McpClientFactory(
IEnumerable<McpServerConfig> serverConfigs,
McpClientOptions clientOptions,
ILoggerFactory loggerFactory,
ILoggerFactory? loggerFactory = null,
Func<McpServerConfig, IClientTransport>? transportFactoryMethod = null,
Func<IClientTransport, McpServerConfig, McpClientOptions, IMcpClient>? clientFactoryMethod = null)
{
if (serverConfigs is null)
{
throw new ArgumentNullException(nameof(serverConfigs));
}
if (clientOptions is null)
{
throw new ArgumentNullException(nameof(clientOptions));
}
loggerFactory ??= NullLoggerFactory.Instance;
_serverConfigs = serverConfigs.ToDictionary(c => c.Id);
_clientOptions = clientOptions;
_loggerFactory = loggerFactory;