NServiceBus:使用自定义log4net
2019-08-16 14:30 huoit 阅读(161) 评论(0) 收藏 举报安装扩展包:NServiceBus.Log4Net
Endpoint.cs增加注入
log4net.Config.BasicConfigurator.Configure();
NServiceBus.Logging.LogManager.Use<NServiceBus.Log4Net.Log4NetFactory>();
原理:
NBUS源码:可以看到,注入外部的日志需要用到 Use<T>或者UseFactory(ILoggerFactory loggerFactory)
namespace NServiceBus.Logging { using System; public static class LogManager { static LogManager() { Use<DefaultFactory>(); } static Lazy<ILoggerFactory> loggerFactory; /// <summary> /// Used to inject an instance of <see cref="ILoggerFactory"/> into <see cref="LogManager"/>. /// </summary> public static T Use<T>() where T : LoggingFactoryDefinition, new() { var loggingDefinition = new T(); loggerFactory = new Lazy<ILoggerFactory>(loggingDefinition.GetLoggingFactory); return loggingDefinition; } /// <summary> /// An instance of <see cref="ILoggerFactory"/> that will be used to construct <see cref="ILog"/>s for static fields. /// </summary> /// <remarks> /// Replace this instance at application statup to redirect log event to your custom logging library. /// </remarks> public static void UseFactory(ILoggerFactory loggerFactory) { if (loggerFactory == null) { throw new ArgumentNullException("loggerFactory"); } LogManager.loggerFactory = new Lazy<ILoggerFactory>(() => loggerFactory); } …………
再看扩展包:NServiceBus.Log4Net源码
基本思路就是Log4Net的Ilog接口和NBUS的ILog接口转换一波
源码:
https://github.com/Particular/NServiceBus.Log4Net/tree/master/src/NServiceBus.Log4Net
1、如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!
2、欢迎各位转载,但是未经作者本人同意,转载文章请在文章页面明显位置标明作者和原文连接,否则保留追究法律责任的权利。
作者博客: http://www.cnblogs.com/xmai/
浙公网安备 33010602011771号