我做了大量的研究(在官方文档,github的问题页面和stackoverflow)关于如何在masstransit中记录数据(记住日志功能与任何日志实现分离),甚至在masstransit的github着名样本上作为 Sample-ShoppingWeb , Sample-Booking 和 Starbucks 我无法理解如何在应用程序上记录数据......
我安装了 MassTransit.NLog ,并将我的公交车配置如下:
var bus = BusConfigurator.ConfigureBus((cfg, host) =>
{
...
cfg.ReceiveEndpoint(host, RabbitMqConstants.SagaQueue, e =>
{
cfg.UseNLog();
...
...并查看NLog教程https://github.com/NLog/NLog/wiki/Tutorial我安装了包 NLog.Config (具有nuget依赖关系 NLog 和 NLog.Schema ) 并在我的项目中添加了文件 NLog.config 和** NLog.xsd * ... ... 问题不在NLog本身,但我不明白如何在masstransit上记录信息......
在我的OrderStateMachine课程中,我执行以下操作
...
Initially(
When(RegisterOrder)
.Then(context =>
{
var log = Logger.Get("logfile");
log.Info(context);
log.InfoFormat("Register Order {0}", "register");
throw new ArgumentException("Test for monitoring sagas");
log.Error(context);
//throw new ArgumentException("Test for monitoring sagas");
...
我不知道我应该使用哪种类和方法(在masstransit上)......
答案 0 :(得分:1)
我理解,只需将NLog工厂实例作为参数传递如下:cfg.UseNLog(new LogFactory());
,Logger.Get("logfile");
返回一个Masstransit的抽象类(根据所需的日志级别调用方法)。
伟大的抽象,如此简单,如此酷!