00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00016 #ifndef _LOG4CPLUS_HIERARCHY_LOCKER_HEADER_
00017 #define _LOG4CPLUS_HIERARCHY_LOCKER_HEADER_
00018
00019 #include <log4cplus/hierarchy.h>
00020
00021
00022 namespace log4cplus {
00023
00027 class LOG4CPLUS_EXPORT HierarchyLocker {
00028 public:
00029
00030 HierarchyLocker(Hierarchy& h);
00031 ~HierarchyLocker();
00032
00036 void resetConfiguration();
00037
00041 Logger getInstance(const log4cplus::tstring& name);
00042
00046 Logger getInstance(const log4cplus::tstring& name, spi::LoggerFactory& factory);
00047
00048 void addAppender(Logger &logger, log4cplus::SharedAppenderPtr& appender);
00049
00050 private:
00051
00052 Hierarchy& h;
00053 log4cplus::thread::Guard hierarchyLocker;
00054 LoggerList loggerList;
00055 };
00056
00057 }
00058
00059 #endif // _LOG4CPLUS_HIERARCHY_LOCKER_HEADER_
00060