根据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。任何帮助都非常感谢。
1条答案
按热度按时间am46iovg1#
首先,您应该升级到最新的
5.X
.NET客户端。然后,请注意在
ChangeLog
文件中,控制台日志记录已被事件源(链接)替换。CallbackException
是当你的一个回调引发异常时使用的,我相信。它与库生成的异常无关。