public async Task <IList <OutgoingMessage> > ProcessOne(IncomingMessage msg, CancellationToken token) { var ts = Stopwatch.StartNew(); using var scopedHandler = _messageHandlerFactory.BuildInNestedScope(msg); Logger.Debug(() => $"{scopedHandler.Handler.GetType().Name} will be used to handle {msg.GetType().Name}"); var responses = await scopedHandler.Handler.HandleAsync(msg, token); ts.Stop(); Logger.Debug(() => $"{scopedHandler.Handler.GetType().Name} has finnish handling {msg.GetType().Name} in {ts.ElapsedMilliseconds} ms."); return(responses); }