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

bqjvbblv  于 2023-10-20  发布在  RabbitMQ
关注(0)|答案(1)|浏览(175)

根据RabbitMq java客户端API,https://www.rabbitmq.com/api-guide.html#recovery
与连接、通道、恢复和使用者生命周期相关的未处理异常被委托给异常处理程序。异常处理程序是实现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
};

我想覆盖/删除的日志打印到控制台,因为拓扑recoveryception异常。

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

am46iovg

am46iovg1#

首先,您应该升级到最新的5.X .NET客户端。
然后,请注意在ChangeLog文件中,控制台日志记录已被事件源(链接)替换。
CallbackException是当你的一个回调引发异常时使用的,我相信。它与库生成的异常无关。

相关问题