2016-09-26 101 views
0

我想記錄我在MassTransit中使用的每條消息。有沒有一種方法來實現全球攔截器,我可以處理收入消息或實現使用配置?MassTransit:有沒有辦法記錄收入消息

我現在的配置是這樣的:

BusFactory = Bus.Factory.CreateUsingRabbitMq(cfg => 
{ 
    var host = cfg.Host(new Uri(AppSettings.RmqConnectionString), h => { }); 

    cfg.UseNLog(); 

    cfg.ReceiveEndpoint(host, RmqPropertyKeys.CallbackQueue, e=> e.LoadFrom(container)); 
}); 

回答

2

文檔包括一個例子中間件過濾器正是這麼做的,在每一個被輸送到消費者的消息日誌。

http://docs.masstransit-project.com/en/latest/middleware/custom.html

您還可以使用內置的LogFilter如果你喜歡:

cfg.UseLog(Console.Out, (context,logContext) => $"Format your log message"); 
+0

請您提供您的答案用NLOG的日誌記錄的例子嗎? Ty – FSou1

+0

我無法弄清楚如何訪問郵件內容(例如,我想記錄我在自定義中間件中使用的每條郵件內容)。 – FSou1

+0

您必須爲每種消息類型創建一個記錄器,並在每種消息類型上單獨註冊這些記錄器。然後上下文被傳遞給過濾器。 –

相關問題