Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Namespace Members | Compound Members | File Members

loggerimpl.h

Go to the documentation of this file.
00001 // Module:  Log4CPLUS
00002 // File:    loggerimpl.h
00003 // Created: 6/2001
00004 // Author:  Tad E. Smith
00005 //
00006 //
00007 // Copyright (C) Tad E. Smith  All rights reserved.
00008 //
00009 // This software is published under the terms of the Apache Software
00010 // License version 1.1, a copy of which has been included with this
00011 // distribution in the LICENSE.APL file.
00012 //
00013 
00016 #ifndef _LOG4CPLUS_SPI_LOGGER_HEADER_
00017 #define _LOG4CPLUS_SPI_LOGGER_HEADER_
00018 
00019 #include <log4cplus/config.h>
00020 #include <log4cplus/logger.h>
00021 #include <log4cplus/tstring.h>
00022 #include <log4cplus/helpers/appenderattachableimpl.h>
00023 #include <log4cplus/helpers/pointer.h>
00024 #include <log4cplus/spi/loggerfactory.h>
00025 #include <memory>
00026 #include <vector>
00027 
00028 
00029 namespace log4cplus {
00030     namespace spi {
00031 
00040         class LOG4CPLUS_EXPORT LoggerImpl : public log4cplus::helpers::SharedObject,
00041                                             public log4cplus::helpers::AppenderAttachableImpl
00042         {
00043         public:
00044           // Methods
00045 
00057             virtual void callAppenders(const InternalLoggingEvent& event);
00058 
00063             virtual void closeNestedAppenders();
00064 
00071             virtual bool isEnabledFor(LogLevel ll) const;
00072 
00076             virtual void log(LogLevel ll, const log4cplus::tstring& message,
00077                              const char* file=NULL, int line=-1);
00078 
00087             virtual LogLevel getChainedLogLevel() const;
00088 
00094             LogLevel getLogLevel() const { return this->ll; }
00095 
00099             void setLogLevel(LogLevel _ll) { this->ll = _ll; }
00100 
00105             virtual Hierarchy& getHierarchy() const;
00106 
00110             log4cplus::tstring getName() const { return name; }
00111 
00115             bool getAdditivity() const;
00116 
00120             void setAdditivity(bool additive);
00121 
00122             virtual ~LoggerImpl();
00123 
00124         protected:
00125           // Ctors
00135             LoggerImpl(const log4cplus::tstring& name, Hierarchy& h);
00136 
00137 
00138           // Methods
00143             virtual void forcedLog(LogLevel ll,
00144                                    const log4cplus::tstring& message,
00145                                    const char* file=NULL, 
00146                                    int line=-1);
00147 
00148 
00149           // Data
00151             log4cplus::tstring name;
00152 
00156             LogLevel ll;
00157 
00162             SharedLoggerImplPtr parent;
00163 
00173             bool additive;
00174 
00175         private:
00176           // Data
00178             Hierarchy& hierarchy;
00179 
00180           // Disallow copying of instances of this class
00181             LoggerImpl(const LoggerImpl&);
00182             LoggerImpl& operator=(const LoggerImpl&);
00183 
00184           // Friends
00185             friend class log4cplus::Logger;
00186             friend class log4cplus::DefaultLoggerFactory;
00187             friend class log4cplus::Hierarchy;
00188         };
00189 
00190     } // end namespace spi
00191 } // end namespace log4cplus
00192 
00193 #endif // _LOG4CPLUS_SPI_LOGGER_HEADER_
00194 
00195 

Generated on Mon Feb 9 09:10:30 2004 for log4cplus by doxygen 1.3.2