18 #ifndef _LOG4CXX_HIERARCHY_H 19 #define _LOG4CXX_HIERARCHY_H 22 #pragma warning (push) 23 #pragma warning ( disable: 4231 4251 4275 4786 ) 62 public std::enable_shared_from_this<Hierarchy>
66 mutable std::mutex mutex;
70 spi::HierarchyEventListenerList listeners;
72 typedef std::map<LogString, LoggerPtr> LoggerMap;
73 std::unique_ptr<LoggerMap> loggers;
75 typedef std::map<LogString, ProvisionNode> ProvisionNodeMap;
76 std::unique_ptr<ProvisionNodeMap> provisionNodes;
83 bool emittedNoAppenderWarning;
84 bool emittedNoResourceBundleWarning;
99 static HierarchyPtr create();
103 void addHierarchyEventListener(
const spi::HierarchyEventListenerPtr& listener);
115 void emitNoAppenderWarning(
const Logger* logger);
129 void setThreshold(
const LogString& levelStr);
137 void setThreshold(
const LevelPtr& l);
139 void fireAddAppenderEvent(
const Logger* logger,
const Appender* appender);
141 void fireRemoveAppenderEvent(
const Logger* logger,
148 const LevelPtr& getThreshold()
const;
197 bool isDisabled(
int level)
const;
212 void resetConfiguration();
234 virtual bool isConfigured();
235 virtual void setConfigured(
bool configured);
243 void setThresholdInternal(
const LevelPtr& l);
248 void shutdownInternal();
291 void configureRoot();
297 #if defined(_MSC_VER) 298 #pragma warning (pop) 301 #endif //_LOG4CXX_HIERARCHY_H A LoggerRepository is used to create and retrieve Loggers.
Definition: loggerrepository.h:47
#define DECLARE_ABSTRACT_LOG4CXX_OBJECT(object)
Definition: object.h:26
#define LOG4CXX_CAST_ENTRY(Interface)
Definition: object.h:148
std::shared_ptr< LoggerFactory > LoggerFactoryPtr
Definition: logmanager.h:38
#define END_LOG4CXX_CAST_MAP()
Definition: object.h:142
std::shared_ptr< Level > LevelPtr
Definition: optionconverter.h:27
std::vector< LoggerPtr > ProvisionNode
Definition: provisionnode.h:31
#define BEGIN_LOG4CXX_CAST_MAP()
Definition: object.h:136
std::vector< LoggerPtr > LoggerList
Definition: logmanager.h:34
LOG4CXX_PTR_DEF(Appender)
base class for java-like objects.
Definition: object.h:101
Implement this interface for your own strategies for outputting log statements.
Definition: appender.h:55
This class is specialized in retrieving loggers by name and also maintaining the logger hierarchy...
Definition: hierarchy.h:59
This is the central class in the log4cxx package.
Definition: logger.h:63
std::shared_ptr< Logger > LoggerPtr
Definition: defaultloggerfactory.h:26
Definition: appender.h:32
std::basic_string< logchar > LogString
Definition: logstring.h:66