-
读取配置文件动态创建对象[C++](4)
2006-02-02
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://jnn.blogbus.com/logs/1879321.html
在全局函数中完成LoggerAppender的初始化工作
initializeFactoryRegistry();
void initializeFactoryRegistry() {
AppenderFactoryRegistry& reg = getAppenderFactoryRegistry();
auto_ptr<AppenderFactory> ptr1(new ConsoleAppenderFactory());
reg.put(ptr1);
auto_ptr<AppenderFactory> ptr2(new NullAppenderFactory());
reg.put(ptr2);
auto_ptr<AppenderFactory> ptr3(new FileAppenderFactory());
reg.put(ptr3);
auto_ptr<AppenderFactory> ptr4(new RollingFileAppenderFactory());
reg.put(ptr4);
auto_ptr<AppenderFactory> ptr5(new DailyRollingFileAppenderFactory());
reg.put(ptr5);
auto_ptr<AppenderFactory> ptr6(new SocketAppenderFactory());
reg.put(ptr6);
#if defined(_WIN32)
auto_ptr<AppenderFactory> ptr7(new NTEventLogAppenderFactory());
reg.put(ptr7);
#elif defined(HAVE_SYSLOG_H)
auto_ptr<AppenderFactory> ptr8(new SysLogAppenderFactory());
reg.put(ptr8);
#endif
LayoutFactoryRegistry& reg2 = getLayoutFactoryRegistry();
auto_ptr<LayoutFactory> ptr21(new SimpleLayoutFactory());
reg2.put(ptr21);
auto_ptr<LayoutFactory> ptr22(new TTCCLayoutFactory());
reg2.put(ptr22);
auto_ptr<LayoutFactory> ptr23(new PatternLayoutFactory());
reg2.put(ptr23);
FilterFactoryRegistry& reg3 = getFilterFactoryRegistry();
auto_ptr<FilterFactory> ptr31(new DenyAllFilterFactory());
reg3.put(ptr31);
auto_ptr<FilterFactory> ptr32(new LogLevelMatchFilterFactory());
reg3.put(ptr32);
auto_ptr<FilterFactory> ptr33(new LogLevelRangeFilterFactory());
reg3.put(ptr33);
auto_ptr<FilterFactory> ptr34(new StringMatchFilterFactory());
reg3.put(ptr34);
}
通过这种方式来实现
AppenderFactoryRegistry
LayoutFactoryRegistry
FilterFactoryRegistry
的初始化工作 – 如果要加入新的类型的数据的支持,需要将这部分的内容也要实现
如何利用Registry中的内容来实现对象数据的创建?
注意
得到的指针内容都是Factory中定义的内容,
通过调用Factory方法来获取具体的能够使用的对象的实例
历史上的今天:
读取配置文件动态创建对象[C++](5) 2006-02-02读取配置文件动态创建对象 [C++] (3) 2006-02-02读取配置文件动态创建对象 [C++] (2) 2006-02-02读取配置文件动态创建对象[C++] (1) 2006-02-02随机文章:
读取配置文件动态创建对象[C++](5) 2006-02-02读取配置文件动态创建对象 [C++] (3) 2006-02-02读取配置文件动态创建对象 [C++] (2) 2006-02-02读取配置文件动态创建对象[C++] (1) 2006-02-02sessions模式 2004-05-07
收藏到:Del.icio.us







