【问题标题】:Remove/Override RabbitMq TopologyRecoveryException logs in .NET在 .NET 中删除/覆盖 RabbitMq TopologyRecoveryException 日志
【发布时间】:2018-07-18 08:46:16
【问题描述】:

根据 RabbitMq java 客户端 API,https://www.rabbitmq.com/api-guide.html#recovery

与连接、通道、恢复和相关的未处理异常 消费者生命周期被委托给异常处理程序。例外 handler 是任何实现 ExceptionHandler 接口的对象。 默认情况下,使用 DefaultExceptionHandler 的实例。它打印 标准输出的异常细节。

可以使用覆盖处理程序 连接工厂#setExceptionHandler。它将被所有人使用 工厂创建的连接:

我们有

ConnectionFactory factory = new ConnectionFactory();
cf.setExceptionHandler(customHandler);

.NET RabbitMq 客户端的相同实现是什么?添加此代码仍在编写控制台日志而不执行我的逻辑以及如何删除现有的事件处理程序?

var factory = new ConnectionFactory() { HostName = "localhost" };
var connection = factory.CreateConnection();
connection.CallbackException += (x, y) => {
   Console.WriteLine("Handled"); // not printing
};

我想覆盖/删除由于拓扑恢复异常而打印到控制台的日志。

任何人都可以帮助我如何通过 RabbitMq.Client 使用 v4.1 覆盖日志的这种默认行为到控制台。非常感谢任何帮助。

【问题讨论】:

    标签: c# .net rabbitmq


    【解决方案1】:

    首先您应该升级到最新的5.X .NET 客户端。

    然后,请注意 ChangeLog 文件中的控制台日志记录已替换为事件源 (link)。

    CallbackException 用于当您的回调之一引发异常时,我相信。它与库生成的异常无关。


    注意:RabbitMQ 团队会监控 the rabbitmq-users mailing list,并且有时只会回答 StackOverflow 上的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-12
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 2014-03-17
      相关资源
      最近更新 更多