11using System ;
2+ using System . Runtime . CompilerServices ;
3+ using CoreHelpers . TaskLogging ;
24using Microsoft . Extensions . Logging ;
35using Microsoft . Extensions . DependencyInjection ;
46
@@ -12,10 +14,19 @@ public static ILoggingBuilder AddTaskLogger(this ILoggingBuilder builder)
1214 return builder ;
1315 }
1416
15- public static IDisposable ? BeginTaskScope ( this ILogger logger , string taskId )
16- => logger . BeginScope < TaskLoggerState > ( new TaskLoggerState ( ) { TaskId = taskId , IsTaskAnnounced = true } ) ;
17+ public static ITaskLoggerTypedScope ? BeginTaskScope ( this ILogger logger , string taskId )
18+ => BeginTypedTaskScope ( logger , new TaskLoggerState ( ) { TaskId = taskId , IsTaskAnnounced = true } ) ;
1719
18- public static IDisposable ? BeginNewTaskScope ( this ILogger logger , string taskType , string taskSource , string taskWorker )
19- => logger . BeginScope < TaskLoggerState > ( new TaskLoggerState ( ) { TaskId = string . Empty , TaskType = taskType , TaskSource = taskSource , TaskWorker = taskWorker , IsTaskAnnounced = false } ) ;
20+ public static ITaskLoggerTypedScope ? BeginNewTaskScope ( this ILogger logger , string taskType , string taskSource , string taskWorker )
21+ => BeginTypedTaskScope ( logger , new TaskLoggerState ( ) { TaskId = string . Empty , TaskType = taskType , TaskSource = taskSource , TaskWorker = taskWorker , IsTaskAnnounced = false } ) ;
22+
23+ private static ITaskLoggerTypedScope ? BeginTypedTaskScope ( ILogger logger , TaskLoggerState taskLoggerState )
24+ {
25+ var innerDisposable = logger . BeginScope < TaskLoggerState > ( taskLoggerState ) ;
26+ if ( innerDisposable == null )
27+ return null ;
28+
29+ return new TaskLoggerTypedScope ( taskLoggerState , innerDisposable ) ;
30+ }
2031 }
2132}
0 commit comments