Orchard 日志加载
来源:互联网 发布:java如何调用接口 编辑:程序博客网 时间:2024/06/06 03:14
Orchard使用Autofac通过属性注入方式,设置类的ILogger属性获得日志服务.
builder.RegisterModule(new LoggingModule());
1.注册LoggingModule模块
moduleBuilder.RegisterType<CastleLoggerFactory>().As<ILoggerFactory>().InstancePerLifetimeScope();
moduleBuilder.RegisterType<OrchardLog4netFactory>().As<Castle.Core.Logging.ILoggerFactory>().InstancePerLifetimeScope();
2.注册CastleLoggerFactory和OrchardLog4netFactory类型【这里CastleLoggerFactory适配了OrchardLog4netFactory,OrchardLog4netFactory的Create方法返回OrchardLog4netLogger对象,OrchardLog4netLogger适配了log4net.Core.ILogger,实现Castle.Core.Logging.ILogger接口】
/*
关于适配器模式适用性:
你想使用一个已经存在的类,而它的接口不符合你的需求。
你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
(仅适用于对象A d a p t e r )你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
*/
var logger = _loggerCache.GetOrAdd(component, key => ctx.Resolve<ILogger>(new TypedParameter(typeof(Type), componentType)));
propertyInfo.SetValue(instance, logger, null);
3.重载Module的AttachToComponentRegistration方法,循环所有注入对象,查找具有ILogger属性的类,在类创建的时候设置ILogging实例
获得ILogging实例顺序
CastleLoggerFactory.CreateLogger调用OrchardLog4netFactory.Created 返回CastleLogger对象,CastleLogger适配了Orchard.Logging.ILogger
OrchardLog4netFactory.Created创建OrchardLog4netLogger对象
builder.RegisterModule(new LoggingModule());
1.注册LoggingModule模块
moduleBuilder.RegisterType<CastleLoggerFactory>().As<ILoggerFactory>().InstancePerLifetimeScope();
moduleBuilder.RegisterType<OrchardLog4netFactory>().As<Castle.Core.Logging.ILoggerFactory>().InstancePerLifetimeScope();
2.注册CastleLoggerFactory和OrchardLog4netFactory类型【这里CastleLoggerFactory适配了OrchardLog4netFactory,OrchardLog4netFactory的Create方法返回OrchardLog4netLogger对象,OrchardLog4netLogger适配了log4net.Core.ILogger,实现Castle.Core.Logging.ILogger接口】
/*
关于适配器模式适用性:
你想使用一个已经存在的类,而它的接口不符合你的需求。
你想创建一个可以复用的类,该类可以与其他不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作。
(仅适用于对象A d a p t e r )你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。
*/
var logger = _loggerCache.GetOrAdd(component, key => ctx.Resolve<ILogger>(new TypedParameter(typeof(Type), componentType)));
propertyInfo.SetValue(instance, logger, null);
3.重载Module的AttachToComponentRegistration方法,循环所有注入对象,查找具有ILogger属性的类,在类创建的时候设置ILogging实例
获得ILogging实例顺序
CastleLoggerFactory.CreateLogger调用OrchardLog4netFactory.Created 返回CastleLogger对象,CastleLogger适配了Orchard.Logging.ILogger
OrchardLog4netFactory.Created创建OrchardLog4netLogger对象
OrchardLog4netLogger通过log4net实现日志
睡觉!Zzzzzzzz..
0 0
- Orchard 日志加载
- Orchard安装
- Orchard基本信息
- 安装Orchard
- Orchard menu
- Orchard注意事项
- 开始Orchard
- Orchard路由
- Eclipse插件加载日志
- Fragment加载日志流程
- 动态加载日志
- UVA 143 Orchard Trees
- uva143 - Orchard Trees
- 新手如何安装 Orchard
- Orchard(一):介绍
- Orchard (二):简单配置
- Orchard学习目录
- HDU 1633 ( Orchard Trees )
- sicily 1011. Lenny's Lucky Lotto
- Android mediaPlayer 播放视频
- BZOJ3223 文艺平衡树(Splay)
- 欢迎使用CSDN-markdown编辑器
- python 抓取天涯帖子内容并保存
- Orchard 日志加载
- 【番外篇】波动率的几种模型
- 企业成本管理会计
- Leetcode: Excel Sheet Column Title
- Leetcode: Excel Sheet Column Number
- vlookup函数
- Two Sum
- 第七章 本源时空
- wwwwww