日志处理的 MassTransit Saga 异常

问题描述

我想弄清楚如何记录处理的异常。当前从 Activity 抛出的异常将被吞下(例如,如果在尝试创建 Acitivity 时出现 DI 错误)。

如何记录捕获的异常?

Initially(
    When(UpdateRequested)
        .Activity(x => x.OfType<HandleUpdateRequestActivity>())
        .TransitionTo(Updating)
        .Catch<Exception>(then => then.Finalize())
);

(抱歉,最近对 Masstransit 标签发送垃圾邮件 :) )

解决方法

首先,简单地纠正一下术语,它不是吞下,而是处理

上面的代码正在捕获异常。如果你想记录它,好吧,记录它。

.Catch<Exception>(then =>
    then.Then(context => Log(context.Exception))
        .Finalize())