RSC  0.17.1
rsc::logging::LoggerProxy Class Reference

A proxy to an instance of Logger, which provides the same interface but allows to exchange the underlying logger at runtime. More...

#include <LoggerProxy.h>

Inheritance diagram for rsc::logging::LoggerProxy:
Inheritance graph
Collaboration diagram for rsc::logging::LoggerProxy:
Collaboration graph

Classes

class  SetLevelCallback
 Interface for callbacks which are invoked when someone calls setLevel on this proxy. More...
 

Public Types

typedef boost::shared_ptr< SetLevelCallbackSetLevelCallbackPtr
 
- Public Types inherited from rsc::logging::Logger
enum  Level {
  LEVEL_ALL = 0x11111111, LEVEL_TRACE = 60, LEVEL_DEBUG = 50, LEVEL_INFO = 40,
  LEVEL_WARN = 30, LEVEL_ERROR = 20, LEVEL_FATAL = 10, LEVEL_OFF = 0
}
 Possible logging levels. More...
 

Public Member Functions

 LoggerProxy (LoggerPtr logger, SetLevelCallbackPtr callback)
 Constructor. More...
 
virtual ~LoggerProxy ()
 
LoggerPtr getLogger () const
 Returns the hidden logger behind this proxy. More...
 
void setLogger (LoggerPtr logger)
 (Re-)Sets the logger to be hidden behind this proxy. More...
 
logger interface
virtual Logger::Level getLevel () const
 Returns the currently defined level of the logger. More...
 
virtual void setLevel (const Logger::Level &level)
 Defines the level of the logger. More...
 
virtual std::string getName () const
 Returns the hierarchical name of the logger. More...
 
virtual void setName (const std::string &name)
 Sets the name of the logger. More...
 
virtual void log (const Logger::Level &level, const std::string &msg)
 Logs a message with the given level if it is enabled. More...
 
- Public Member Functions inherited from rsc::logging::Logger
virtual ~Logger ()
 
virtual void trace (const std::string &msg)
 Logs a message with trace logging level if this level is enabled. More...
 
virtual void debug (const std::string &msg)
 Logs a message with debug logging level if this level is enabled. More...
 
virtual void info (const std::string &msg)
 Logs a message with info logging level if this level is enabled. More...
 
virtual void warn (const std::string &msg)
 Logs a message with warn logging level if this level is enabled. More...
 
virtual void error (const std::string &msg)
 Logs a message with error logging level if this level is enabled. More...
 
virtual void fatal (const std::string &msg)
 Logs a message with fatal logging level if this level is enabled. More...
 
virtual bool isTraceEnabled () const
 
virtual bool isDebugEnabled () const
 
virtual bool isInfoEnabled () const
 
virtual bool isWarnEnabled () const
 
virtual bool isErrorEnabled () const
 
virtual bool isFatalEnabled () const
 
virtual bool isEnabledFor (const Level &level) const
 

Private Attributes

LoggerPtr logger
 The hidden logger. More...
 
SetLevelCallbackPtr callback
 

Additional Inherited Members

- Static Public Member Functions inherited from rsc::logging::Logger
static LoggerPtr getLogger (const std::string &name)
 Returns a logger for the given name. More...
 

Detailed Description

A proxy to an instance of Logger, which provides the same interface but allows to exchange the underlying logger at runtime.

Author
jwienke

Definition at line 43 of file LoggerProxy.h.

Member Typedef Documentation

Definition at line 63 of file LoggerProxy.h.

Constructor & Destructor Documentation

rsc::logging::LoggerProxy::LoggerProxy ( LoggerPtr  logger,
SetLevelCallbackPtr  callback 
)

Constructor.

Parameters
loggerthe initial logger to hide behind this proxy
callbackcallback invoked when setLevel is called

Definition at line 35 of file LoggerProxy.cpp.

rsc::logging::LoggerProxy::~LoggerProxy ( )
virtual

Definition at line 39 of file LoggerProxy.cpp.

Member Function Documentation

Logger::Level rsc::logging::LoggerProxy::getLevel ( ) const
virtual

Returns the currently defined level of the logger.

Returns
current level of the logger

Implements rsc::logging::Logger.

Definition at line 42 of file LoggerProxy.cpp.

References logger.

LoggerPtr rsc::logging::LoggerProxy::getLogger ( ) const

Returns the hidden logger behind this proxy.

Returns
hidden logger instance

Definition at line 63 of file LoggerProxy.cpp.

References logger.

std::string rsc::logging::LoggerProxy::getName ( ) const
virtual

Returns the hierarchical name of the logger.

Returns
name of the logger

Implements rsc::logging::Logger.

Definition at line 51 of file LoggerProxy.cpp.

References logger.

void rsc::logging::LoggerProxy::log ( const Logger::Level level,
const std::string &  msg 
)
virtual

Logs a message with the given level if it is enabled.

Parameters
levellevel for the message
msgmessage to log

Implements rsc::logging::Logger.

Definition at line 59 of file LoggerProxy.cpp.

References logger.

void rsc::logging::LoggerProxy::setLevel ( const Logger::Level level)
virtual

Defines the level of the logger.

Parameters
levelnew level

Implements rsc::logging::Logger.

Definition at line 46 of file LoggerProxy.cpp.

References callback.

void rsc::logging::LoggerProxy::setLogger ( LoggerPtr  logger)

(Re-)Sets the logger to be hidden behind this proxy.

This may happen at any time and from any thread.

Parameters
loggernew logger to hide

Definition at line 67 of file LoggerProxy.cpp.

References logger.

void rsc::logging::LoggerProxy::setName ( const std::string &  name)
virtual

Sets the name of the logger.

Parameters
namenew name

Implements rsc::logging::Logger.

Definition at line 55 of file LoggerProxy.cpp.

References logger.

Member Data Documentation

SetLevelCallbackPtr rsc::logging::LoggerProxy::callback
private

Definition at line 108 of file LoggerProxy.h.

Referenced by setLevel().

LoggerPtr rsc::logging::LoggerProxy::logger
private

The hidden logger.

We rely on the locking of boost::shared_ptr for access to this instance, even on reselection.

Definition at line 106 of file LoggerProxy.h.

Referenced by getLevel(), getLogger(), getName(), log(), setLogger(), and setName().


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