Skip to content

Commit a3aa70b

Browse files
Copilotstephentoub
andcommitted
Add LogTransportSendingMessageSensitive overload taking JsonRpcMessage
Add an overload that takes a JsonRpcMessage directly, encapsulating the IsEnabled check and JSON serialization to simplify call sites. Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>
1 parent 669781d commit a3aa70b

3 files changed

Lines changed: 15 additions & 8 deletions

File tree

src/ModelContextProtocol.Core/Client/SseClientSessionTransport.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,7 @@ public override async Task SendMessageAsync(
8080
messageId = messageWithId.Id.ToString();
8181
}
8282

83-
if (_logger.IsEnabled(LogLevel.Trace))
84-
{
85-
LogTransportSendingMessageSensitive(Name, JsonSerializer.Serialize(message, McpJsonUtilities.JsonContext.Default.JsonRpcMessage));
86-
}
83+
LogTransportSendingMessageSensitive(message);
8784

8885
using var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, _messageEndpoint);
8986
StreamableHttpClientSessionTransport.CopyAdditionalHeaders(httpRequestMessage.Headers, _options.AdditionalHeaders, sessionId: null, protocolVersion: null);

src/ModelContextProtocol.Core/Client/StreamableHttpClientSessionTransport.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -75,10 +75,7 @@ internal async Task<HttpResponseMessage> SendHttpRequestAsync(JsonRpcMessage mes
7575
$"Call {nameof(McpClient)}.{nameof(McpClient.ResumeSessionAsync)} to resume existing sessions.");
7676
}
7777

78-
if (_logger.IsEnabled(LogLevel.Trace))
79-
{
80-
LogTransportSendingMessageSensitive(Name, JsonSerializer.Serialize(message, McpJsonUtilities.JsonContext.Default.JsonRpcMessage));
81-
}
78+
LogTransportSendingMessageSensitive(message);
8279

8380
using var sendCts = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _connectionCts.Token);
8481
cancellationToken = sendCts.Token;

src/ModelContextProtocol.Core/Protocol/TransportBase.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using Microsoft.Extensions.Logging;
22
using Microsoft.Extensions.Logging.Abstractions;
33
using System.Diagnostics;
4+
using System.Text.Json;
45
using System.Threading.Channels;
56

67
namespace ModelContextProtocol.Protocol;
@@ -169,6 +170,18 @@ protected void SetDisconnected(Exception? error = null)
169170
[LoggerMessage(Level = LogLevel.Trace, Message = "{EndpointName} transport sending message. Message: '{Message}'.")]
170171
private protected partial void LogTransportSendingMessageSensitive(string endpointName, string message);
171172

173+
/// <summary>
174+
/// Logs a sending message at Trace level if trace logging is enabled.
175+
/// </summary>
176+
/// <param name="message">The JSON-RPC message to log.</param>
177+
private protected void LogTransportSendingMessageSensitive(JsonRpcMessage message)
178+
{
179+
if (_logger.IsEnabled(LogLevel.Trace))
180+
{
181+
LogTransportSendingMessageSensitive(Name, JsonSerializer.Serialize(message, McpJsonUtilities.JsonContext.Default.JsonRpcMessage));
182+
}
183+
}
184+
172185
[LoggerMessage(Level = LogLevel.Information, Message = "{EndpointName} transport reading messages.")]
173186
private protected partial void LogTransportEnteringReadMessagesLoop(string endpointName);
174187

0 commit comments

Comments
 (0)