log4cplus  2.1.0
Public Member Functions | Static Public Member Functions | Protected Attributes | Friends | List of all members
log4cplus::Logger Class Reference

This is the central class in the log4cplus package. More...

#include <logger.h>

Inheritance diagram for log4cplus::Logger:
[legend]
Collaboration diagram for log4cplus::Logger:
[legend]

Public Member Functions

void assertion (bool assertionVal, const log4cplus::tstring &msg) const
 If assertionVal parameter is false, then logs msg with FATAL_LOG_LEVEL log level. More...
 
void closeNestedAppenders () const
 Close all attached appenders implementing the AppenderAttachable interface. More...
 
bool isEnabledFor (LogLevel ll) const
 Check whether this logger is enabled for a given LogLevel passed as parameter. More...
 
void log (LogLevel ll, const log4cplus::tstring &message, const char *file=LOG4CPLUS_CALLER_FILE(), int line=LOG4CPLUS_CALLER_LINE(), const char *function=LOG4CPLUS_CALLER_FUNCTION()) const
 This generic form is intended to be used by wrappers. More...
 
void log (spi::InternalLoggingEvent const &) const
 
void forcedLog (LogLevel ll, const log4cplus::tstring &message, const char *file=LOG4CPLUS_CALLER_FILE(), int line=LOG4CPLUS_CALLER_LINE(), const char *function=LOG4CPLUS_CALLER_FUNCTION()) const
 This method creates a new logging event and logs the event without further checks. More...
 
void forcedLog (spi::InternalLoggingEvent const &) const
 
void callAppenders (const spi::InternalLoggingEvent &event) const
 Call the appenders in the hierrachy starting at this. More...
 
LogLevel getChainedLogLevel () const
 Starting from this logger, search the logger hierarchy for a "set" LogLevel and return it. More...
 
LogLevel getLogLevel () const
 Returns the assigned LogLevel, if any, for this Logger. More...
 
void setLogLevel (LogLevel ll)
 Set the LogLevel of this Logger. More...
 
HierarchygetHierarchy () const
 Return the the Hierarchy where this Logger instance is attached. More...
 
log4cplus::tstring const & getName () const
 Return the logger name. More...
 
bool getAdditivity () const
 Get the additivity flag for this Logger instance. More...
 
void setAdditivity (bool additive)
 Set the additivity flag for this Logger instance. More...
 
virtual void addAppender (SharedAppenderPtr newAppender)
 Add an appender. More...
 
virtual SharedAppenderPtrList getAllAppenders ()
 Get all previously added appenders as an Enumeration. More...
 
virtual SharedAppenderPtr getAppender (const log4cplus::tstring &name)
 Get an appender by name. More...
 
virtual void removeAllAppenders ()
 Remove all previously added appenders. More...
 
virtual void removeAppender (SharedAppenderPtr appender)
 Remove the appender passed as parameter from the list of appenders. More...
 
virtual void removeAppender (const log4cplus::tstring &name)
 Remove the appender with the name passed as parameter from the list of appenders. More...
 
 Logger () LOG4CPLUS_NOEXCEPT
 
 Logger (const Logger &rhs) LOG4CPLUS_NOEXCEPT
 
Loggeroperator= (const Logger &rhs) LOG4CPLUS_NOEXCEPT
 
 Logger (Logger &&rhs) LOG4CPLUS_NOEXCEPT
 
Loggeroperator= (Logger &&rhs) LOG4CPLUS_NOEXCEPT
 
virtual ~Logger ()
 
void swap (Logger &) LOG4CPLUS_NOEXCEPT
 
Logger getParent () const
 Used to retrieve the parent of this Logger in the Logger tree. More...
 
- Public Member Functions inherited from log4cplus::spi::AppenderAttachable
virtual ~AppenderAttachable ()=0
 

Static Public Member Functions

static bool exists (const log4cplus::tstring &name)
 Returns true if the named logger exists (in the default hierarchy). More...
 
static LoggerList getCurrentLoggers ()
 
static HierarchygetDefaultHierarchy ()
 Return the default Hierarchy instance. More...
 
static Logger getInstance (const log4cplus::tstring &name)
 Retrieve a logger with name name. More...
 
static Logger getInstance (const log4cplus::tstring &name, spi::LoggerFactory &factory)
 Like getInstance() except that the type of logger instantiated depends on the type returned by the {} method of the factory parameter. More...
 
static Logger getRoot ()
 Return the root of the default logger hierrachy. More...
 
static void shutdown ()
 Calling this method will safely close and remove all appenders in all the loggers including root contained in the default hierachy. More...
 

Protected Attributes

spi::LoggerImplvalue = nullptr
 This is a pointer to the implementation class. More...
 

Friends

class log4cplus::spi::LoggerImpl
 
class log4cplus::Hierarchy
 
class log4cplus::HierarchyLocker
 
class log4cplus::DefaultLoggerFactory
 

Detailed Description

This is the central class in the log4cplus package.

One of the distintive features of log4cplus are hierarchical loggers and their evaluation.

Definition at line 69 of file logger.h.

Constructor & Destructor Documentation

◆ Logger() [1/3]

log4cplus::Logger::Logger ( )

◆ Logger() [2/3]

log4cplus::Logger::Logger ( const Logger rhs)

◆ Logger() [3/3]

log4cplus::Logger::Logger ( Logger &&  rhs)

◆ ~Logger()

virtual log4cplus::Logger::~Logger ( )
virtual

Member Function Documentation

◆ addAppender()

virtual void log4cplus::Logger::addAppender ( SharedAppenderPtr  newAppender)
virtual

Add an appender.

Implements log4cplus::spi::AppenderAttachable.

◆ assertion()

void log4cplus::Logger::assertion ( bool  assertionVal,
const log4cplus::tstring msg 
) const

If assertionVal parameter is false, then logs msg with FATAL_LOG_LEVEL log level.

Parameters
assertionValTruth value of assertion condition.
msgThe message to print if assertion is false.

◆ callAppenders()

void log4cplus::Logger::callAppenders ( const spi::InternalLoggingEvent event) const

Call the appenders in the hierrachy starting at this.

If no appenders could be found, emit a warning.

This method calls all the appenders inherited from the hierarchy circumventing any evaluation of whether to log or not to log the particular log request.

Parameters
eventthe event to log.

◆ closeNestedAppenders()

void log4cplus::Logger::closeNestedAppenders ( ) const

Close all attached appenders implementing the AppenderAttachable interface.

◆ exists()

static bool log4cplus::Logger::exists ( const log4cplus::tstring name)
static

Returns true if the named logger exists (in the default hierarchy).

Parameters
nameThe name of the logger to search for.

◆ forcedLog() [1/2]

void log4cplus::Logger::forcedLog ( LogLevel  ll,
const log4cplus::tstring message,
const char *  file = LOG4CPLUS_CALLER_FILE(),
int  line = LOG4CPLUS_CALLER_LINE(),
const char *  function = LOG4CPLUS_CALLER_FUNCTION() 
) const

This method creates a new logging event and logs the event without further checks.

Referenced by log4cplus::TraceLogger::TraceLogger(), and log4cplus::TraceLogger::~TraceLogger().

◆ forcedLog() [2/2]

void log4cplus::Logger::forcedLog ( spi::InternalLoggingEvent const &  ) const

◆ getAdditivity()

bool log4cplus::Logger::getAdditivity ( ) const

Get the additivity flag for this Logger instance.

◆ getAllAppenders()

virtual SharedAppenderPtrList log4cplus::Logger::getAllAppenders ( )
virtual

Get all previously added appenders as an Enumeration.

Implements log4cplus::spi::AppenderAttachable.

◆ getAppender()

virtual SharedAppenderPtr log4cplus::Logger::getAppender ( const log4cplus::tstring name)
virtual

Get an appender by name.

Implements log4cplus::spi::AppenderAttachable.

◆ getChainedLogLevel()

LogLevel log4cplus::Logger::getChainedLogLevel ( ) const

Starting from this logger, search the logger hierarchy for a "set" LogLevel and return it.

Otherwise, return the LogLevel of the root logger.

The Logger class is designed so that this method executes as quickly as possible.

◆ getCurrentLoggers()

static LoggerList log4cplus::Logger::getCurrentLoggers ( )
static

◆ getDefaultHierarchy()

static Hierarchy& log4cplus::Logger::getDefaultHierarchy ( )
static

Return the default Hierarchy instance.

◆ getHierarchy()

Hierarchy& log4cplus::Logger::getHierarchy ( ) const

Return the the Hierarchy where this Logger instance is attached.

◆ getInstance() [1/2]

static Logger log4cplus::Logger::getInstance ( const log4cplus::tstring name)
static

Retrieve a logger with name name.

If the named logger already exists, then the existing instance will be returned. Otherwise, a new instance is created.

By default, loggers do not have a set LogLevel but inherit it from the hierarchy. This is one of the central features of log4cplus.

Parameters
nameThe name of the logger to retrieve.

Referenced by log4cplus::detail::macros_get_logger().

◆ getInstance() [2/2]

static Logger log4cplus::Logger::getInstance ( const log4cplus::tstring name,
spi::LoggerFactory factory 
)
static

Like getInstance() except that the type of logger instantiated depends on the type returned by the {} method of the factory parameter.

This method is intended to be used by sub-classes.

Parameters
nameThe name of the logger to retrieve.
factoryA spi::LoggerFactory implementation that will actually create a new Instance.

◆ getLogLevel()

LogLevel log4cplus::Logger::getLogLevel ( ) const

Returns the assigned LogLevel, if any, for this Logger.

Returns
LogLevel - the assigned LogLevel, can be NOT_SET_LOG_LEVEL.

◆ getName()

log4cplus::tstring const& log4cplus::Logger::getName ( ) const

Return the logger name.

◆ getParent()

Logger log4cplus::Logger::getParent ( ) const

Used to retrieve the parent of this Logger in the Logger tree.

◆ getRoot()

static Logger log4cplus::Logger::getRoot ( )
static

Return the root of the default logger hierrachy.

The root logger is always instantiated and available. It's name is "root".

Nevertheless, calling Logger.getInstance("root") does not retrieve the root logger but a logger just under root named "root".

◆ isEnabledFor()

bool log4cplus::Logger::isEnabledFor ( LogLevel  ll) const

Check whether this logger is enabled for a given LogLevel passed as parameter.

Returns
boolean True if this logger is enabled for ll.

Referenced by log4cplus::TraceLogger::TraceLogger(), and log4cplus::TraceLogger::~TraceLogger().

◆ log() [1/2]

void log4cplus::Logger::log ( LogLevel  ll,
const log4cplus::tstring message,
const char *  file = LOG4CPLUS_CALLER_FILE(),
int  line = LOG4CPLUS_CALLER_LINE(),
const char *  function = LOG4CPLUS_CALLER_FUNCTION() 
) const

This generic form is intended to be used by wrappers.

◆ log() [2/2]

void log4cplus::Logger::log ( spi::InternalLoggingEvent const &  ) const

◆ operator=() [1/2]

Logger& log4cplus::Logger::operator= ( const Logger rhs)

◆ operator=() [2/2]

Logger& log4cplus::Logger::operator= ( Logger &&  rhs)

◆ removeAllAppenders()

virtual void log4cplus::Logger::removeAllAppenders ( )
virtual

Remove all previously added appenders.

Implements log4cplus::spi::AppenderAttachable.

◆ removeAppender() [1/2]

virtual void log4cplus::Logger::removeAppender ( const log4cplus::tstring name)
virtual

Remove the appender with the name passed as parameter from the list of appenders.

Implements log4cplus::spi::AppenderAttachable.

◆ removeAppender() [2/2]

virtual void log4cplus::Logger::removeAppender ( SharedAppenderPtr  appender)
virtual

Remove the appender passed as parameter from the list of appenders.

Implements log4cplus::spi::AppenderAttachable.

◆ setAdditivity()

void log4cplus::Logger::setAdditivity ( bool  additive)

Set the additivity flag for this Logger instance.

◆ setLogLevel()

void log4cplus::Logger::setLogLevel ( LogLevel  ll)

Set the LogLevel of this Logger.

◆ shutdown()

static void log4cplus::Logger::shutdown ( )
static

Calling this method will safely close and remove all appenders in all the loggers including root contained in the default hierachy.

Some appenders such as SocketAppender need to be closed before the application exits. Otherwise, pending logging events might be lost.

The shutdown method is careful to close nested appenders before closing regular appenders. This is allows configurations where a regular appender is attached to a logger and again to a nested appender.

◆ swap()

void log4cplus::Logger::swap ( Logger )

Friends And Related Function Documentation

◆ log4cplus::DefaultLoggerFactory

friend class log4cplus::DefaultLoggerFactory
friend

Definition at line 304 of file logger.h.

◆ log4cplus::Hierarchy

friend class log4cplus::Hierarchy
friend

Definition at line 302 of file logger.h.

◆ log4cplus::HierarchyLocker

friend class log4cplus::HierarchyLocker
friend

Definition at line 303 of file logger.h.

◆ log4cplus::spi::LoggerImpl

friend class log4cplus::spi::LoggerImpl
friend

Definition at line 301 of file logger.h.

Member Data Documentation

◆ value

spi::LoggerImpl* log4cplus::Logger::value = nullptr
protected

This is a pointer to the implementation class.

Definition at line 285 of file logger.h.


The documentation for this class was generated from the following file: