删除/覆盖.NET中的RabbitMq TopologyRecoveryException日志

时间:2018-07-18 08:46:16

标签: c# .net rabbitmq

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

  

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

     

可以使用以下方法覆盖处理程序   ConnectionFactory#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
};

由于拓扑恢复例外,我想覆盖/删除正在打印到控制台的日志。

enter image description here

任何人都可以帮助我解决如何通过Rabbitvq.Client使用v4.1覆盖此默认日志行为以进行控制台的问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

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

我相信,当您的一个回调引发异常时,将使用

CallbackException。它与库生成的异常无关。


注意: RabbitMQ团队监视the rabbitmq-users mailing list,并且有时仅在StackOverflow上回答问题。