From 8be681543d434dd161f635669419f30c73b0c735 Mon Sep 17 00:00:00 2001 From: Stephen Halter Date: Wed, 26 Mar 2025 19:18:16 -0700 Subject: [PATCH] Use different logger categories for client and server in McpJsonRpcEndpoint (#110) * Use different logger categories for client and server in McpJsonRpcEndpoint * Address PR feedback --- src/ModelContextProtocol/Client/McpClient.cs | 2 -- src/ModelContextProtocol/Server/McpServer.cs | 2 -- src/ModelContextProtocol/Shared/McpJsonRpcEndpoint.cs | 7 +++---- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/ModelContextProtocol/Client/McpClient.cs b/src/ModelContextProtocol/Client/McpClient.cs index 244522a..1ae358e 100644 --- a/src/ModelContextProtocol/Client/McpClient.cs +++ b/src/ModelContextProtocol/Client/McpClient.cs @@ -15,7 +15,6 @@ namespace ModelContextProtocol.Client; internal sealed class McpClient : McpJsonRpcEndpoint, IMcpClient { private readonly McpClientOptions _options; - private readonly ILogger _logger; private readonly IClientTransport _clientTransport; private volatile bool _isInitializing; @@ -31,7 +30,6 @@ internal sealed class McpClient : McpJsonRpcEndpoint, IMcpClient : base(transport, loggerFactory) { _options = options; - _logger = (ILogger?)loggerFactory?.CreateLogger() ?? NullLogger.Instance; _clientTransport = transport; EndpointName = $"Client ({serverConfig.Id}: {serverConfig.Name})"; diff --git a/src/ModelContextProtocol/Server/McpServer.cs b/src/ModelContextProtocol/Server/McpServer.cs index 64e332d..4c0c6b5 100644 --- a/src/ModelContextProtocol/Server/McpServer.cs +++ b/src/ModelContextProtocol/Server/McpServer.cs @@ -14,7 +14,6 @@ namespace ModelContextProtocol.Server; internal sealed class McpServer : McpJsonRpcEndpoint, IMcpServer { private readonly IServerTransport? _serverTransport; - private readonly ILogger _logger; private readonly string _serverDescription; private volatile bool _isInitializing; @@ -33,7 +32,6 @@ internal sealed class McpServer : McpJsonRpcEndpoint, IMcpServer Throw.IfNull(options); _serverTransport = transport as IServerTransport; - _logger = (ILogger?)loggerFactory?.CreateLogger() ?? NullLogger.Instance; ServerInstructions = options.ServerInstructions; Services = serviceProvider; _serverDescription = $"{options.ServerInfo.Name} {options.ServerInfo.Version}"; diff --git a/src/ModelContextProtocol/Shared/McpJsonRpcEndpoint.cs b/src/ModelContextProtocol/Shared/McpJsonRpcEndpoint.cs index caf2fd0..175a60b 100644 --- a/src/ModelContextProtocol/Shared/McpJsonRpcEndpoint.cs +++ b/src/ModelContextProtocol/Shared/McpJsonRpcEndpoint.cs @@ -28,9 +28,10 @@ internal abstract class McpJsonRpcEndpoint : IAsyncDisposable private readonly Dictionary>> _requestHandlers = []; private int _nextRequestId; private readonly JsonSerializerOptions _jsonOptions; - private readonly ILogger _logger; private bool _isDisposed; + protected readonly ILogger _logger; + /// /// Initializes a new instance of the class. /// @@ -40,14 +41,12 @@ internal abstract class McpJsonRpcEndpoint : IAsyncDisposable { Throw.IfNull(transport); - loggerFactory ??= NullLoggerFactory.Instance; - _transport = transport; _pendingRequests = new(); _notificationHandlers = new(); _nextRequestId = 1; _jsonOptions = McpJsonUtilities.DefaultOptions; - _logger = (ILogger?)loggerFactory?.CreateLogger() ?? NullLogger.Instance; + _logger = loggerFactory?.CreateLogger(GetType()) ?? NullLogger.Instance; } ///