7、Logging日志
EasyNetQ提供了一个日志接口 IEasyNetQLogger:
public interface IEasyNetQLogger { void DebugWrite(string format,params object[] args); void InfoWrite(string format, params object[] args); void ErrorWrite(string format, params object[] args); void ErrorWrite(Exception exception); }
Logging 默认是关闭的,NullLogger作为IEasyNetQLogger的默认实现被注册进去。
有一个控制台Logger(ConsoleLogger)可以用来做测试或调试。但是,没人会在生产环境系统中使用它。调试级别的Logging是非常详细的,记录了所有信息,但会对你的应用有性能上的影响。这可能对于那些在AMQP和EasyNetQ方面没有深入了解的人来说没有多大意义。
你应该提供自己的IEasyNetQLogger实现,记录日志信息和错误信息到自己的应用日志中。RabbitHutch.CreateBus方法提供了overloads方法,允许你替换成自己的日志组件。参看Replacing EasyNetQ Components.你可以使用这个方法注册自己的Logger到Bus中。示例如下:
var logger = new MyLogger();// IEasyNetQLogger实现。 var bus = RabbitHutch.CreateBus(“我的连接字符串”,x => x.Register<IEasyNetQLooger>(_ => loger));