log4cpp 1.1
Loading...
Searching...
No Matches
Category.hh
Go to the documentation of this file.
1/*
2 * Category.hh
3 *
4 * Copyright 2000, LifeLine Networks BV (www.lifeline.nl). All rights reserved.
5 * Copyright 2000, Bastiaan Bakker. All rights reserved.
6 *
7 * See the COPYING file for the terms of usage and distribution.
8 */
9
10#ifndef _LOG4CPP_CATEGORY_HH
11#define _LOG4CPP_CATEGORY_HH
12
14#include <log4cpp/Appender.hh>
16#include <log4cpp/Priority.hh>
19#include <log4cpp/convenience.h>
20
21#include <map>
22#include <vector>
23#include <cstdarg>
24#include <stdexcept>
25
26namespace log4cpp {
27
34 friend class HierarchyMaintainer;
35
36 public:
48 static Category& getRoot();
49
54 static void setRootPriority(Priority::Value priority);
55
61
69 static Category& getInstance(const std::string& name);
70
76 static Category* exists(const std::string& name);
77
90 static std::vector<Category*>* getCurrentCategories();
91
95 static void shutdown();
96
101 static void shutdownForced();
102
106 virtual ~Category();
107
112 virtual const std::string& getName() const LOG4CPP_NOTHROW;
113
121 virtual void setPriority(Priority::Value priority);
122
127 virtual Priority::Value getPriority() const LOG4CPP_NOTHROW;
128
137 virtual Priority::Value getChainedPriority() const LOG4CPP_NOTHROW;
138
145 virtual bool isPriorityEnabled(Priority::Value priority) const LOG4CPP_NOTHROW;
146
154 virtual void addAppender(Appender* appender);
155
162 virtual void addAppender(Appender& appender);
163
172 inline void setAppender(Appender* appender) {
173 if (appender) {
174 addAppender(appender);
175 } else {
177 }
178 };
179
186 inline void setAppender(Appender& appender) {
187 addAppender(appender);
188 };
189
196 virtual Appender* getAppender() const;
197
204 virtual Appender* getAppender(const std::string& name) const;
205
211 virtual AppenderSet getAllAppenders() const;
212
216 virtual void removeAllAppenders();
217
222 virtual void removeAppender(Appender* appender);
223
230 virtual bool ownsAppender() const LOG4CPP_NOTHROW {
231 return ownsAppender(getAppender());
232 };
233
239 virtual bool ownsAppender(Appender* appender) const LOG4CPP_NOTHROW;
240
252 virtual void callAppenders(const LoggingEvent& event) LOG4CPP_NOTHROW;
253
257 virtual void setAdditivity(bool additivity);
258
262 virtual bool getAdditivity() const LOG4CPP_NOTHROW;
263
269 virtual Category* getParent() LOG4CPP_NOTHROW;
270
276 virtual const Category* getParent() const LOG4CPP_NOTHROW;
277
285 virtual void log(Priority::Value priority, const char* stringFormat,
286 ...) LOG4CPP_NOTHROW;
287
293 virtual void log(Priority::Value priority,
294 const std::string& message) LOG4CPP_NOTHROW;
295
304 virtual void logva(Priority::Value priority,
305 const char* stringFormat,
306 va_list va) LOG4CPP_NOTHROW;
307
314 void debug(const char* stringFormat, ...) LOG4CPP_NOTHROW;
315
320 void debug(const std::string& message) LOG4CPP_NOTHROW;
321
326 inline bool isDebugEnabled() const LOG4CPP_NOTHROW {
328 };
329
337
344 void info(const char* stringFormat, ...) LOG4CPP_NOTHROW;
345
350 void info(const std::string& message) LOG4CPP_NOTHROW;
351
356 inline bool isInfoEnabled() const LOG4CPP_NOTHROW {
358 };
359
366 }
367
374 void notice(const char* stringFormat, ...) LOG4CPP_NOTHROW;
375
380 void notice(const std::string& message) LOG4CPP_NOTHROW;
381
386 inline bool isNoticeEnabled() const LOG4CPP_NOTHROW {
388 };
389
397
404 void warn(const char* stringFormat, ...) LOG4CPP_NOTHROW;
405
410 void warn(const std::string& message) LOG4CPP_NOTHROW;
411
416 inline bool isWarnEnabled() const LOG4CPP_NOTHROW {
418 };
419
426 };
427
434 void error(const char* stringFormat, ...) LOG4CPP_NOTHROW;
435
440 void error(const std::string& message) LOG4CPP_NOTHROW;
441
446 inline bool isErrorEnabled() const LOG4CPP_NOTHROW {
448 };
449
456 };
457
464 void crit(const char* stringFormat, ...) LOG4CPP_NOTHROW;
465
470 void crit(const std::string& message) LOG4CPP_NOTHROW;
471
476 inline bool isCritEnabled() const LOG4CPP_NOTHROW {
478 };
479
486 };
487
494 void alert(const char* stringFormat, ...) LOG4CPP_NOTHROW;
495
500 void alert(const std::string& message) LOG4CPP_NOTHROW;
501
506 inline bool isAlertEnabled() const LOG4CPP_NOTHROW {
508 };
509
517
524 void emerg(const char* stringFormat, ...) LOG4CPP_NOTHROW;
525
530 void emerg(const std::string& message) LOG4CPP_NOTHROW;
531
536 inline bool isEmergEnabled() const LOG4CPP_NOTHROW {
538 };
539
546 };
547
556 void fatal(const char* stringFormat, ...) LOG4CPP_NOTHROW;
557
564 void fatal(const std::string& message) LOG4CPP_NOTHROW;
565
572 inline bool isFatalEnabled() const LOG4CPP_NOTHROW {
574 };
575
584 };
585
591 virtual CategoryStream getStream(Priority::Value priority);
592
598 virtual CategoryStream operator<<(Priority::Value priority);
599
600 protected:
601
610 Category(const std::string& name, Category* parent,
612
613 virtual void _logUnconditionally(Priority::Value priority,
614 const char* format,
615 va_list arguments) LOG4CPP_NOTHROW;
616
622 virtual void _logUnconditionally2(Priority::Value priority,
623 const std::string& message) LOG4CPP_NOTHROW;
624
625 private:
626
627 /* prevent copying and assignment */
628 Category(const Category& other);
629 Category& operator=(const Category& other);
630
632 const std::string _name;
633
638 Category* _parent;
639
643 volatile Priority::Value _priority;
644
645 typedef std::map<Appender *, bool> OwnsAppenderMap;
646
652
653 virtual bool ownsAppender(Appender* appender,
654 OwnsAppenderMap::iterator& i2) LOG4CPP_NOTHROW;
655
656 AppenderSet _appender;
657 mutable threading::Mutex _appenderSetMutex;
658
663
664 OwnsAppenderMap _ownsAppender;
665
670 volatile bool _isAdditive;
671
672 };
673
674}
675#endif // _LOG4CPP_CATEGORY_HH
#define LOG4CPP_EXPORT
Definition Export.hh:26
#define LOG4CPP_NOTHROW
Definition Portability.hh:80
Implement this interface for your own strategies for printing log statements.
Definition Appender.hh:34
This class enables streaming simple types and objects to a category.
Definition CategoryStream.hh:39
This is the central class in the log4j package.
Definition Category.hh:33
bool isInfoEnabled() const LOG4CPP_NOTHROW
Return true if the Category will log messages with priority INFO.
Definition Category.hh:356
friend class HierarchyMaintainer
Definition Category.hh:34
virtual const std::string & getName() const LOG4CPP_NOTHROW
Return the category name.
Definition Category.cpp:69
virtual bool isPriorityEnabled(Priority::Value priority) const LOG4CPP_NOTHROW
Returns true if the chained priority of the Category is equal to or higher than given priority.
Definition Category.cpp:267
bool isEmergEnabled() const LOG4CPP_NOTHROW
Return true if the Category will log messages with priority EMERG.
Definition Category.hh:536
static Category & getRoot()
Return the root of the Category hierarchy.
Definition Category.cpp:23
CategoryStream critStream()
Return a CategoryStream with priority CRIT.
Definition Category.hh:484
bool isFatalEnabled() const LOG4CPP_NOTHROW
Return true if the Category will log messages with priority FATAL.
Definition Category.hh:572
static Category & getInstance(const std::string &name)
Instantiate a Category with name name.
Definition Category.cpp:35
virtual Priority::Value getPriority() const LOG4CPP_NOTHROW
Returns the assigned Priority, if any, for this Category.
Definition Category.cpp:73
virtual Appender * getAppender() const
Returns the first Appender for this Category, or NULL if no Appender has been set.
Definition Category.cpp:126
virtual void setPriority(Priority::Value priority)
Set the priority of this Category.
Definition Category.cpp:77
bool isAlertEnabled() const LOG4CPP_NOTHROW
Return true if the Category will log messages with priority ALERT.
Definition Category.hh:506
bool isDebugEnabled() const LOG4CPP_NOTHROW
Return true if the Category will log messages with priority DEBUG.
Definition Category.hh:326
CategoryStream noticeStream()
Return a CategoryStream with priority NOTICE.
Definition Category.hh:394
CategoryStream emergStream()
Return a CategoryStream with priority EMERG.
Definition Category.hh:544
CategoryStream infoStream()
Return a CategoryStream with priority INFO.
Definition Category.hh:364
bool isCritEnabled() const LOG4CPP_NOTHROW
Return true if the Category will log messages with priority CRIT.
Definition Category.hh:476
CategoryStream alertStream() LOG4CPP_NOTHROW
Return a CategoryStream with priority ALERT.
Definition Category.hh:514
Category(const std::string &name, Category *parent, Priority::Value priority=Priority::NOTSET)
Constructor.
Definition Category.cpp:58
bool isErrorEnabled() const LOG4CPP_NOTHROW
Return true if the Category will log messages with priority ERROR.
Definition Category.hh:446
static void shutdown()
This method will remove all Appenders from Categories.XXX.
Definition Category.cpp:48
virtual Priority::Value getChainedPriority() const LOG4CPP_NOTHROW
Starting from this Category, search the category hierarchy for a set priority and return it.
Definition Category.cpp:88
CategoryStream fatalStream()
Return a CategoryStream with priority FATAL.
Definition Category.hh:582
bool isWarnEnabled() const LOG4CPP_NOTHROW
Return true if the Category will log messages with priority WARN.
Definition Category.hh:416
static Priority::Value getRootPriority() LOG4CPP_NOTHROW
Get the priority of the root Category.
Definition Category.cpp:31
virtual void removeAllAppenders()
Removes all appenders for this Category.
Definition Category.cpp:155
static std::vector< Category * > * getCurrentCategories()
Returns all the currently defined categories as a vector of Category pointers.
Definition Category.cpp:43
CategoryStream warnStream()
Return a CategoryStream with priority WARN.
Definition Category.hh:424
virtual bool ownsAppender() const LOG4CPP_NOTHROW
Returns true if the Category owns the first Appender in its Appender set.
Definition Category.hh:230
virtual CategoryStream getStream(Priority::Value priority)
Return a CategoryStream with given Priority.
Definition Category.cpp:421
static Category * exists(const std::string &name)
If the named category exists (in the default hierarchy) then it returns a reference to the category,...
Definition Category.cpp:39
void setAppender(Appender &appender)
Adds an Appender for this Category.
Definition Category.hh:186
bool isNoticeEnabled() const LOG4CPP_NOTHROW
Return true if the Category will log messages with priority NOTICE.
Definition Category.hh:386
static void setRootPriority(Priority::Value priority)
Set the priority of the root Category.
Definition Category.cpp:27
static void shutdownForced()
This method will remove all Appenders from Categories.XXX and delete all appenders.
Definition Category.cpp:52
CategoryStream errorStream()
Return a CategoryStream with priority ERROR.
Definition Category.hh:454
CategoryStream debugStream()
Return a CategoryStream with priority DEBUG.
Definition Category.hh:334
void setAppender(Appender *appender)
Adds an Appender to this Category.
Definition Category.hh:172
virtual void addAppender(Appender *appender)
Adds an Appender to this Category.
Definition Category.cpp:99
The Priority class provides importance levels with which one can categorize log messages.
Definition Priority.hh:61
int Value
The type of Priority Values.
Definition Priority.hh:85
@ FATAL
Definition Priority.hh:71
@ CRIT
Definition Priority.hh:73
@ DEBUG
Definition Priority.hh:78
@ EMERG
Definition Priority.hh:70
@ INFO
Definition Priority.hh:77
@ ALERT
Definition Priority.hh:72
@ WARN
Definition Priority.hh:75
@ ERROR
Definition Priority.hh:74
@ NOTICE
Definition Priority.hh:76
@ NOTSET
Definition Priority.hh:79
Definition PThreads.hh:29
The top level namespace for all 'Log for C++' types and classes.
Definition AbortAppender.hh:16
std::set< Appender * > AppenderSet
Definition Appender.hh:165
ostream & operator<<(ostream &os, const width &w)
Definition Manipulator.cpp:10
Definition Portability.hh:59
The internal representation of logging events.
Definition LoggingEvent.hh:32