22// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
33
44using System . Collections ;
5+ using System . Diagnostics ;
56using Serilog . Events ;
67using Microsoft . Extensions . Logging ;
78using Serilog . Debugging ;
@@ -138,7 +139,7 @@ public void LogsCorrectMessage()
138139
139140 logger . Log < object > ( LogLevel . Information , 0 , null ! , null ! , null ! ) ;
140141 logger . Log ( LogLevel . Information , 0 , TestMessage , null ! , null ! ) ;
141- logger . Log < object > ( LogLevel . Information , 0 , null ! , null ! , ( _ , __ ) => TestMessage ) ;
142+ logger . Log < object > ( LogLevel . Information , 0 , null ! , null ! , ( _ , _ ) => TestMessage ) ;
142143
143144 Assert . Equal ( 3 , sink . Writes . Count ) ;
144145
@@ -308,7 +309,7 @@ public void WhenDisposeIsTrueProvidedLoggerIsDisposed()
308309 }
309310
310311 [ Fact ]
311- public void BeginScopeDestructuresObjectsWhenDestructurerIsUsedInMessageTemplate ( )
312+ public void BeginScopeDestructuresObjectsWhenCapturingOperatorIsUsedInMessageTemplate ( )
312313 {
313314 var ( logger , sink ) = SetUp ( LogLevel . Trace ) ;
314315
@@ -328,7 +329,7 @@ public void BeginScopeDestructuresObjectsWhenDestructurerIsUsedInMessageTemplate
328329 }
329330
330331 [ Fact ]
331- public void BeginScopeDestructuresObjectsWhenDestructurerIsUsedInDictionary ( )
332+ public void BeginScopeDestructuresObjectsWhenCapturingOperatorIsUsedInDictionary ( )
332333 {
333334 var ( logger , sink ) = SetUp ( LogLevel . Trace ) ;
334335
@@ -348,7 +349,7 @@ public void BeginScopeDestructuresObjectsWhenDestructurerIsUsedInDictionary()
348349 }
349350
350351 [ Fact ]
351- public void BeginScopeDoesNotModifyKeyWhenDestructurerIsNotUsedInMessageTemplate ( )
352+ public void BeginScopeDoesNotModifyKeyWhenCapturingOperatorIsNotUsedInMessageTemplate ( )
352353 {
353354 var ( logger , sink ) = SetUp ( LogLevel . Trace ) ;
354355
@@ -362,7 +363,7 @@ public void BeginScopeDoesNotModifyKeyWhenDestructurerIsNotUsedInMessageTemplate
362363 }
363364
364365 [ Fact ]
365- public void BeginScopeDoesNotModifyKeyWhenDestructurerIsNotUsedInDictionary ( )
366+ public void BeginScopeDoesNotModifyKeyWhenCapturingOperatorIsNotUsedInDictionary ( )
366367 {
367368 var ( logger , sink ) = SetUp ( LogLevel . Trace ) ;
368369
@@ -466,7 +467,10 @@ public void MismatchedMessageTemplateParameterCountIsHandled()
466467 {
467468 var ( logger , sink ) = SetUp ( LogLevel . Trace ) ;
468469
470+ #pragma warning disable CA2017
471+ // ReSharper disable once StructuredMessageTemplateProblem
469472 logger . LogInformation ( "Some test message with {Two} {Properties}" , "OneProperty" ) ;
473+ #pragma warning restore CA2017
470474
471475 Assert . Empty ( sink . Writes ) ;
472476 }
@@ -475,7 +479,7 @@ public void MismatchedMessageTemplateParameterCountIsHandled()
475479 public void ExceptionFromAuditSinkIsUnhandled ( )
476480 {
477481 var serilogLogger = new LoggerConfiguration ( )
478- . AuditTo . Sink ( new MySink ( ) )
482+ . AuditTo . Sink ( new UnimplementedSink ( ) )
479483 . CreateLogger ( ) ;
480484
481485 var provider = new SerilogLoggerProvider ( serilogLogger ) ;
@@ -486,11 +490,33 @@ public void ExceptionFromAuditSinkIsUnhandled()
486490 Assert . Equal ( "Oops" , ex . InnerException . Message ) ;
487491 }
488492
489- private class MySink : ILogEventSink
493+ class UnimplementedSink : ILogEventSink
490494 {
491495 public void Emit ( LogEvent logEvent )
492496 {
493497 throw new NotImplementedException ( "Oops" ) ;
494498 }
495499 }
500+
501+ [ Fact ]
502+ public void TraceAndSpanIdsAreCaptured ( )
503+ {
504+ using var listener = new ActivityListener ( ) ;
505+ listener . ShouldListenTo = _ => true ;
506+ listener . Sample = ( ref ActivityCreationOptions < ActivityContext > _ ) => ActivitySamplingResult . AllData ;
507+
508+ ActivitySource . AddActivityListener ( listener ) ;
509+
510+ var source = new ActivitySource ( "test.activity" , "1.0.0" ) ;
511+ using var activity = source . StartActivity ( ) ;
512+ Assert . NotNull ( Activity . Current ) ;
513+
514+ var ( logger , sink ) = SetUp ( LogLevel . Trace ) ;
515+ logger . LogInformation ( "Hello trace and span!" ) ;
516+
517+ var evt = Assert . Single ( sink . Writes ) ;
518+
519+ Assert . Equal ( Activity . Current . TraceId , evt . TraceId ) ;
520+ Assert . Equal ( Activity . Current . SpanId , evt . SpanId ) ;
521+ }
496522}
0 commit comments