@@ -27,7 +27,7 @@ public EventBusServiceBus(IServiceBusPersisterConnection serviceBusPersisterConn
2727 ILifetimeScope autofac )
2828 {
2929 _serviceBusPersisterConnection = serviceBusPersisterConnection ;
30- _logger = logger ;
30+ _logger = logger ?? throw new ArgumentNullException ( nameof ( logger ) ) ;
3131 _subsManager = subsManager ?? new InMemoryEventBusSubscriptionsManager ( ) ;
3232
3333 _subscriptionClient = new SubscriptionClient ( serviceBusPersisterConnection . ServiceBusConnectionStringBuilder ,
@@ -61,6 +61,8 @@ public void Publish(IntegrationEvent @event)
6161 public void SubscribeDynamic < TH > ( string eventName )
6262 where TH : IDynamicIntegrationEventHandler
6363 {
64+ _logger . LogInformation ( "Subscribing to dynamic event {EventName} with {EventHandler}" , eventName , nameof ( TH ) ) ;
65+
6466 _subsManager . AddDynamicSubscription < TH > ( eventName ) ;
6567 }
6668
@@ -87,6 +89,8 @@ public void Subscribe<T, TH>()
8789 }
8890 }
8991
92+ _logger . LogInformation ( "Subscribing to event {EventName} with {EventHandler}" , eventName , nameof ( TH ) ) ;
93+
9094 _subsManager . AddSubscription < T , TH > ( ) ;
9195 }
9296
@@ -108,12 +112,16 @@ public void Unsubscribe<T, TH>()
108112 _logger . LogWarning ( "The messaging entity {eventName} Could not be found." , eventName ) ;
109113 }
110114
115+ _logger . LogInformation ( "Unsubscribing from event {EventName}" , eventName ) ;
116+
111117 _subsManager . RemoveSubscription < T , TH > ( ) ;
112118 }
113119
114120 public void UnsubscribeDynamic < TH > ( string eventName )
115121 where TH : IDynamicIntegrationEventHandler
116122 {
123+ _logger . LogInformation ( "Unsubscribing from dynamic event {EventName}" , eventName ) ;
124+
117125 _subsManager . RemoveDynamicSubscription < TH > ( eventName ) ;
118126 }
119127
@@ -136,17 +144,16 @@ private void RegisterSubscriptionClientMessageHandler()
136144 await _subscriptionClient . CompleteAsync ( message . SystemProperties . LockToken ) ;
137145 }
138146 } ,
139- new MessageHandlerOptions ( ExceptionReceivedHandler ) { MaxConcurrentCalls = 10 , AutoComplete = false } ) ;
147+ new MessageHandlerOptions ( ExceptionReceivedHandler ) { MaxConcurrentCalls = 10 , AutoComplete = false } ) ;
140148 }
141149
142150 private Task ExceptionReceivedHandler ( ExceptionReceivedEventArgs exceptionReceivedEventArgs )
143151 {
144- Console . WriteLine ( $ "Message handler encountered an exception { exceptionReceivedEventArgs . Exception } ." ) ;
152+ var ex = exceptionReceivedEventArgs . Exception ;
145153 var context = exceptionReceivedEventArgs . ExceptionReceivedContext ;
146- Console . WriteLine ( "Exception context for troubleshooting:" ) ;
147- Console . WriteLine ( $ "- Endpoint: { context . Endpoint } ") ;
148- Console . WriteLine ( $ "- Entity Path: { context . EntityPath } ") ;
149- Console . WriteLine ( $ "- Executing Action: { context . Action } ") ;
154+
155+ _logger . LogError ( ex , "ERROR handling message: {ExceptionMessage} - Context: {@ExceptionContext}" , ex . Message , context ) ;
156+
150157 return Task . CompletedTask ;
151158 }
152159
@@ -172,7 +179,7 @@ private async Task<bool> ProcessEvent(string eventName, string message)
172179 var handler = scope . ResolveOptional ( subscription . HandlerType ) ;
173180 if ( handler == null ) continue ;
174181 var eventType = _subsManager . GetEventTypeByName ( eventName ) ;
175- var integrationEvent = JsonConvert . DeserializeObject ( message , eventType ) ;
182+ var integrationEvent = JsonConvert . DeserializeObject ( message , eventType ) ;
176183 var concreteType = typeof ( IIntegrationEventHandler < > ) . MakeGenericType ( eventType ) ;
177184 await ( Task ) concreteType . GetMethod ( "Handle" ) . Invoke ( handler , new object [ ] { integrationEvent } ) ;
178185 }
0 commit comments