00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00023 #ifndef _LOG4CPLUS_SPI_LOGGER_HEADER_
00024 #define _LOG4CPLUS_SPI_LOGGER_HEADER_
00025
00026 #include "dcmtk/oflog/config.h"
00027 #include "dcmtk/oflog/tstring.h"
00028 #include "dcmtk/oflog/helpers/apndimpl.h"
00029 #include "dcmtk/oflog/helpers/pointer.h"
00030 #include "dcmtk/oflog/spi/logfact.h"
00031
00032
00033
00034
00035 namespace log4cplus {
00036 class DefaultLoggerFactory;
00037
00038 namespace spi {
00039
00048 class LOG4CPLUS_EXPORT LoggerImpl
00049 : public virtual log4cplus::helpers::SharedObject,
00050 public log4cplus::helpers::AppenderAttachableImpl
00051 {
00052 public:
00053 typedef helpers::SharedObjectPtr<LoggerImpl> SharedLoggerImplPtr;
00054
00055
00056
00068 virtual void callAppenders(const InternalLoggingEvent& event);
00069
00074 virtual void closeNestedAppenders();
00075
00082 virtual bool isEnabledFor(LogLevel ll) const;
00083
00087 virtual void log(LogLevel ll, const log4cplus::tstring& message,
00088 const char* file=NULL, int line=-1,
00089 const char* function=NULL);
00090
00099 virtual LogLevel getChainedLogLevel() const;
00100
00106 LogLevel getLogLevel() const { return this->ll; }
00107
00111 void setLogLevel(LogLevel _ll) { this->ll = _ll; }
00112
00117 virtual Hierarchy& getHierarchy() const;
00118
00122 log4cplus::tstring getName() const { return name; }
00123
00127 bool getAdditivity() const;
00128
00132 void setAdditivity(bool additive);
00133
00134 virtual ~LoggerImpl();
00135
00136 protected:
00137
00148 LoggerImpl(const log4cplus::tstring& name, Hierarchy& h);
00149
00150
00151
00156 virtual void forcedLog(LogLevel ll,
00157 const log4cplus::tstring& message,
00158 const char* file=NULL,
00159 int line=-1,
00160 const char* function=NULL);
00161
00162
00163
00165 log4cplus::tstring name;
00166
00170 LogLevel ll;
00171
00176 SharedLoggerImplPtr parent;
00177
00187 bool additive;
00188
00189 private:
00190
00192 Hierarchy& hierarchy;
00193
00194
00195 LoggerImpl(const LoggerImpl&);
00196 LoggerImpl& operator=(const LoggerImpl&);
00197
00198
00199 friend class log4cplus::Logger;
00200 friend class log4cplus::DefaultLoggerFactory;
00201 friend class log4cplus::Hierarchy;
00202 };
00203
00204 typedef LoggerImpl::SharedLoggerImplPtr SharedLoggerImplPtr;
00205
00206 }
00207 }
00208
00209 #endif // _LOG4CPLUS_SPI_LOGGER_HEADER_
00210
00211