@@ -22,6 +22,14 @@ public StdioServerTransportTests(ITestOutputHelper testOutputHelper)
2222 InitializationTimeout = TimeSpan . FromSeconds ( 10 ) ,
2323 ServerInstructions = "Test Instructions"
2424 } ;
25+
26+ // Override the LoggerFactory to use Trace level for testing Trace-level logging
27+ LoggerFactory = Microsoft . Extensions . Logging . LoggerFactory . Create ( builder =>
28+ {
29+ builder . AddProvider ( XunitLoggerProvider ) ;
30+ builder . AddProvider ( MockLoggerProvider ) ;
31+ builder . SetMinimumLevel ( LogLevel . Trace ) ;
32+ } ) ;
2533 }
2634
2735 [ Fact ( Skip = "https://github.com/modelcontextprotocol/csharp-sdk/issues/143" ) ]
@@ -199,25 +207,19 @@ public async Task SendMessageAsync_Should_Preserve_Unicode_Characters()
199207 public async Task SendMessageAsync_Should_Log_At_Trace_Level ( )
200208 {
201209 // Arrange
202- var mockLoggerProvider = new MockLoggerProvider ( ) ;
203- using var traceLoggerFactory = Microsoft . Extensions . Logging . LoggerFactory . Create ( builder =>
204- {
205- builder . AddProvider ( mockLoggerProvider ) ;
206- builder . SetMinimumLevel ( LogLevel . Trace ) ;
207- } ) ;
208210 using var output = new MemoryStream ( ) ;
209211
210212 await using var transport = new StreamServerTransport (
211213 new Pipe ( ) . Reader . AsStream ( ) ,
212214 output ,
213- loggerFactory : traceLoggerFactory ) ;
215+ loggerFactory : LoggerFactory ) ;
214216
215217 // Act
216218 var message = new JsonRpcRequest { Method = "test" , Id = new RequestId ( 44 ) } ;
217219 await transport . SendMessageAsync ( message , TestContext . Current . CancellationToken ) ;
218220
219221 // Assert
220- var traceLogMessages = mockLoggerProvider . LogMessages
222+ var traceLogMessages = MockLoggerProvider . LogMessages
221223 . Where ( x => x . LogLevel == LogLevel . Trace && x . Message . Contains ( "transport sending message" ) )
222224 . ToList ( ) ;
223225
@@ -229,13 +231,6 @@ public async Task SendMessageAsync_Should_Log_At_Trace_Level()
229231 public async Task ReadMessagesAsync_Should_Log_Received_At_Trace_Level ( )
230232 {
231233 // Arrange
232- var mockLoggerProvider = new MockLoggerProvider ( ) ;
233- using var traceLoggerFactory = Microsoft . Extensions . Logging . LoggerFactory . Create ( builder =>
234- {
235- builder . AddProvider ( mockLoggerProvider ) ;
236- builder . SetMinimumLevel ( LogLevel . Trace ) ;
237- } ) ;
238-
239234 var message = new JsonRpcRequest { Method = "test" , Id = new RequestId ( 99 ) } ;
240235 var json = JsonSerializer . Serialize ( message , McpJsonUtilities . DefaultOptions ) ;
241236
@@ -245,7 +240,7 @@ public async Task ReadMessagesAsync_Should_Log_Received_At_Trace_Level()
245240 await using var transport = new StreamServerTransport (
246241 input ,
247242 Stream . Null ,
248- loggerFactory : traceLoggerFactory ) ;
243+ loggerFactory : LoggerFactory ) ;
249244
250245 // Act
251246 await pipe . Writer . WriteAsync ( Encoding . UTF8 . GetBytes ( $ "{ json } \n ") , TestContext . Current . CancellationToken ) ;
@@ -255,7 +250,7 @@ public async Task ReadMessagesAsync_Should_Log_Received_At_Trace_Level()
255250 Assert . True ( canRead , "Nothing to read here from transport message reader" ) ;
256251
257252 // Assert
258- var traceLogMessages = mockLoggerProvider . LogMessages
253+ var traceLogMessages = MockLoggerProvider . LogMessages
259254 . Where ( x => x . LogLevel == LogLevel . Trace && x . Message . Contains ( "transport received message" ) )
260255 . ToList ( ) ;
261256
0 commit comments