blocxx
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Attributes | Private Member Functions

BLOCXX_NAMESPACE::Logger Class Reference

Logging interface. More...

#include <Logger.hpp>

Inheritance diagram for BLOCXX_NAMESPACE::Logger:
BLOCXX_NAMESPACE::IntrusiveCountableBase BLOCXX_NAMESPACE::AppenderLogger BLOCXX_NAMESPACE::CerrLogger BLOCXX_NAMESPACE::NullLogger

List of all members.

Public Types

enum  ELoggerErrorCodes { E_UNKNOWN_LOG_APPENDER_TYPE, E_INVALID_MAX_FILE_SIZE, E_INVALID_MAX_BACKUP_INDEX }

Public Member Functions

 Logger (const String &defaultComponent=STR_DEFAULT_COMPONENT, const LogAppenderRef &appender=LogAppenderRef())
 Logger (const String &defaultComponent, const ELogLevel logLevel)
 Logger (const Logger &)
Loggeroperator= (const Logger &)
void swap (Logger &x)
virtual ~Logger ()
virtual LoggerRef clone () const BLOCXX_DEPRECATED
void logFatalError (const String &message, const char *filename=0, int fileline=-1, const char *methodname=0) const
 Log message with a fatal error category and the default component.
void logError (const String &message, const char *filename=0, int fileline=-1, const char *methodname=0) const
 If getLogLevel() >= E_ERROR_LEVEL, Log message with an error category and the default component.
void logWarning (const String &message, const char *filename=0, int fileline=-1, const char *methodname=0) const
 If getLogLevel() >= E_WARNING_LEVEL, Log info.
void logInfo (const String &message, const char *filename=0, int fileline=-1, const char *methodname=0) const
 If getLogLevel() >= E_INFO_LEVEL, Log info.
void logDebug (const String &message, const char *filename=0, int fileline=-1, const char *methodname=0) const
 If getLogLevel() >= E_DEBUG_LEVEL, Log debug info.
void logDebug2 (const String &message, const char *filename=0, int fileline=-1, const char *methodname=0) const
 If getLogLevel() >= E_DEBUG2_LEVEL, Log debug info.
void logDebug3 (const String &message, const char *filename=0, int fileline=-1, const char *methodname=0) const
 If getLogLevel() >= E_DEBUG3_LEVEL, Log debug info.
void logMessage (const String &component, const String &category, const String &message) const
 Log a message using the specified component and category The current log level is ignored.
void logMessage (const String &component, const String &category, const String &message, const char *filename, int fileline, const char *methodname) const
 Log a message using the specified component and category The current log level is ignored.
void logMessage (const String &category, const String &message) const
 Log a message using the default component and specified category.
void logMessage (const String &category, const String &message, const char *filename, int fileline, const char *methodname) const
 Log a message using the default component and specified category.
void logMessage (const LogMessage &message) const
 Log a message.
void setDefaultComponent (const String &component)
 Sets the default component.
String getDefaultComponent () const
 Gets the default component.
ELogLevel getLogLevel () const
void setLogLevel (ELogLevel logLevel)
 Set the log level.
void setLogLevel (const String &logLevel)
 Set the log level.
bool categoryIsEnabled (const String &category) const
 Determine if the log category is enabled.
bool levelIsEnabled (const ELogLevel level) const
 Check if the logger is enabled for given level.
bool componentAndCategoryAreEnabled (const String &component, const String &category) const
 Determine if the component and category are both enabled.

Static Public Member Functions

static ELogLevel stringToLogLevel (const String &logLevel)
 Convert a log level string to an enum value.
static String logLevelToString (ELogLevel logLevel)
 Convert a log level enum to a string.
static const LoggerasLogger (const Logger &lgr)
 Utility functions for backward compatibility with LoggerRef and the BLOCXX_LOG macros.
static const LoggerasLogger (const LoggerRef &lgr)

Static Public Attributes

static const GlobalString STR_NONE_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("NONE")
static const GlobalString STR_FATAL_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("FATAL")
static const GlobalString STR_ERROR_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("ERROR")
static const GlobalString STR_WARNING_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("WARNING")
static const GlobalString STR_INFO_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("INFO")
static const GlobalString STR_DEBUG_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("DEBUG")
static const GlobalString STR_DEBUG2_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("DEBUG2")
static const GlobalString STR_DEBUG3_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("DEBUG3")
static const GlobalString STR_ALL_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("ALL")
static const GlobalString STR_DEFAULT_COMPONENT = BLOCXX_GLOBAL_STRING_INIT("none")

Protected Attributes

String m_defaultComponent
LogAppenderRef m_appender
ELogLevel m_logLevel

Private Member Functions

void processLogMessage (const LogMessage &message) const

Detailed Description

Logging interface.

Used to output log messages. A Logger has a component, a log level and a LogAppenderRef. The component will be used for all log messages generated, unless another component is explicitly specified in a call to logMessage(). The AppenderRef is the target for log messages. The global LogAppenderRef will be retrieved via LogAppender::getCurrentLogAppender() if one is not passed to the constructor. An application may call LogAppender::setDefaultLogAppender() to set the global LogAppenderRef. The log level will be obtained from the appender by calling m_appender->getLogLevel().

Invariants:

Responsibilities:

Collaborators:

Thread safety: read/write, except for setDefaultComponent() and setLogLevel() which should only be called during initialization phase.

Copy semantics: Value

Exception safety: Strong

Definition at line 86 of file Logger.hpp.


Member Enumeration Documentation

Enumerator:
E_UNKNOWN_LOG_APPENDER_TYPE 
E_INVALID_MAX_FILE_SIZE 
E_INVALID_MAX_BACKUP_INDEX 

Definition at line 101 of file Logger.hpp.


Constructor & Destructor Documentation

BLOCXX_NAMESPACE::Logger::Logger ( const String defaultComponent = STR_DEFAULT_COMPONENT,
const LogAppenderRef appender = LogAppenderRef() 
)
Parameters:
defaultComponentThe component used for log messages (can be overridden by logMessage())
appenderThe Appender which will receive log messages. If NULL, the result of LogAppender::getCurrentLogAppender() will be used.

Definition at line 66 of file Logger.cpp.

References BLOCXX_ASSERT, BLOCXX_NAMESPACE::String::length(), and m_defaultComponent.

Referenced by clone().

BLOCXX_NAMESPACE::Logger::Logger ( const String defaultComponent,
const ELogLevel  logLevel 
)
Parameters:
defaultComponentThe component used for log messages (can be overridden my logMessage())
logLevelThe log level. All lower level log messages will be ignored.

Definition at line 75 of file Logger.cpp.

References BLOCXX_ASSERT, BLOCXX_NAMESPACE::String::length(), and m_defaultComponent.

BLOCXX_NAMESPACE::Logger::Logger ( const Logger x)

Definition at line 84 of file Logger.cpp.

BLOCXX_NAMESPACE::Logger::~Logger ( ) [virtual]

Definition at line 113 of file Logger.cpp.


Member Function Documentation

static const Logger& BLOCXX_NAMESPACE::Logger::asLogger ( const Logger lgr) [inline, static]

Utility functions for backward compatibility with LoggerRef and the BLOCXX_LOG macros.

Definition at line 309 of file Logger.hpp.

static const Logger& BLOCXX_NAMESPACE::Logger::asLogger ( const LoggerRef lgr) [inline, static]

Definition at line 313 of file Logger.hpp.

bool BLOCXX_NAMESPACE::Logger::categoryIsEnabled ( const String category) const

Determine if the log category is enabled.

Definition at line 329 of file Logger.cpp.

References m_appender.

LoggerRef BLOCXX_NAMESPACE::Logger::clone ( ) const [virtual]

Definition at line 119 of file Logger.cpp.

References Logger().

bool BLOCXX_NAMESPACE::Logger::componentAndCategoryAreEnabled ( const String component,
const String category 
) const

Determine if the component and category are both enabled.

Definition at line 343 of file Logger.cpp.

References m_appender.

String BLOCXX_NAMESPACE::Logger::getDefaultComponent ( ) const

Gets the default component.

Returns:
The default component

Definition at line 239 of file Logger.cpp.

References m_defaultComponent.

ELogLevel BLOCXX_NAMESPACE::Logger::getLogLevel ( ) const [inline]
Returns:
The current log level

Definition at line 253 of file Logger.hpp.

Referenced by BLOCXX_NAMESPACE::AppenderLogger::getLevel(), and levelIsEnabled().

bool BLOCXX_NAMESPACE::Logger::levelIsEnabled ( const ELogLevel  level) const

Check if the logger is enabled for given level.

Definition at line 336 of file Logger.cpp.

References getLogLevel().

void BLOCXX_NAMESPACE::Logger::logDebug ( const String message,
const char *  filename = 0,
int  fileline = -1,
const char *  methodname = 0 
) const

If getLogLevel() >= E_DEBUG_LEVEL, Log debug info.

Parameters:
messageThe string to log.
filenameThe file where the log statement was written.
filelineThe line number of the file where the log statement was written.
methodnameThe method name where the log statement was written.

Definition at line 166 of file Logger.cpp.

References BLOCXX_NAMESPACE::E_DEBUG_LEVEL, m_defaultComponent, m_logLevel, processLogMessage(), and STR_DEBUG_CATEGORY.

Referenced by BLOCXX_NAMESPACE::ScopeLogger::~ScopeLogger().

void BLOCXX_NAMESPACE::Logger::logDebug2 ( const String message,
const char *  filename = 0,
int  fileline = -1,
const char *  methodname = 0 
) const

If getLogLevel() >= E_DEBUG2_LEVEL, Log debug info.

Parameters:
messageThe string to log.
filenameThe file where the log statement was written.
filelineThe line number of the file where the log statement was written.
methodnameThe method name where the log statement was written.

Definition at line 176 of file Logger.cpp.

References BLOCXX_NAMESPACE::E_DEBUG2_LEVEL, m_defaultComponent, m_logLevel, processLogMessage(), and STR_DEBUG2_CATEGORY.

void BLOCXX_NAMESPACE::Logger::logDebug3 ( const String message,
const char *  filename = 0,
int  fileline = -1,
const char *  methodname = 0 
) const

If getLogLevel() >= E_DEBUG3_LEVEL, Log debug info.

Parameters:
messageThe string to log.
filenameThe file where the log statement was written.
filelineThe line number of the file where the log statement was written.
methodnameThe method name where the log statement was written.

Definition at line 186 of file Logger.cpp.

References BLOCXX_NAMESPACE::E_DEBUG3_LEVEL, m_defaultComponent, m_logLevel, processLogMessage(), and STR_DEBUG3_CATEGORY.

void BLOCXX_NAMESPACE::Logger::logError ( const String message,
const char *  filename = 0,
int  fileline = -1,
const char *  methodname = 0 
) const

If getLogLevel() >= E_ERROR_LEVEL, Log message with an error category and the default component.

Parameters:
messageThe string to log.
filenameThe file where the log statement was written.
filelineThe line number of the file where the log statement was written.
methodnameThe method name where the log statement was written.

Definition at line 136 of file Logger.cpp.

References BLOCXX_NAMESPACE::E_ERROR_LEVEL, m_defaultComponent, m_logLevel, processLogMessage(), and STR_ERROR_CATEGORY.

void BLOCXX_NAMESPACE::Logger::logFatalError ( const String message,
const char *  filename = 0,
int  fileline = -1,
const char *  methodname = 0 
) const

Log message with a fatal error category and the default component.

Parameters:
messageThe string to log.
filenameThe file where the log statement was written.
filelineThe line number of the file where the log statement was written.
methodnameThe method name where the log statement was written.

Definition at line 126 of file Logger.cpp.

References BLOCXX_NAMESPACE::E_FATAL_ERROR_LEVEL, m_defaultComponent, m_logLevel, processLogMessage(), and STR_FATAL_CATEGORY.

void BLOCXX_NAMESPACE::Logger::logInfo ( const String message,
const char *  filename = 0,
int  fileline = -1,
const char *  methodname = 0 
) const

If getLogLevel() >= E_INFO_LEVEL, Log info.

Parameters:
messageThe string to log.
filenameThe file where the log statement was written.
filelineThe line number of the file where the log statement was written.
methodnameThe method name where the log statement was written.

Definition at line 156 of file Logger.cpp.

References BLOCXX_NAMESPACE::E_INFO_LEVEL, m_defaultComponent, m_logLevel, processLogMessage(), and STR_INFO_CATEGORY.

String BLOCXX_NAMESPACE::Logger::logLevelToString ( ELogLevel  logLevel) [static]
void BLOCXX_NAMESPACE::Logger::logMessage ( const LogMessage message) const

Log a message.

The current log level is ignored.

Parameters:
messageThe message to log

Definition at line 224 of file Logger.cpp.

References processLogMessage().

void BLOCXX_NAMESPACE::Logger::logMessage ( const String category,
const String message 
) const

Log a message using the default component and specified category.

The current log level is ignored.

Parameters:
categoryThe category of the log message.
messageThe message to log

Definition at line 210 of file Logger.cpp.

References m_defaultComponent, and processLogMessage().

void BLOCXX_NAMESPACE::Logger::logMessage ( const String component,
const String category,
const String message 
) const

Log a message using the specified component and category The current log level is ignored.

Parameters:
componentThe component generating the log message.
categoryThe category of the log message.
messageThe message to log

Definition at line 196 of file Logger.cpp.

References processLogMessage().

void BLOCXX_NAMESPACE::Logger::logMessage ( const String component,
const String category,
const String message,
const char *  filename,
int  fileline,
const char *  methodname 
) const

Log a message using the specified component and category The current log level is ignored.

Parameters:
componentThe component generating the log message.
categoryThe category of the log message.
messageThe message to log
filenameThe file where the log statement was written.
filelineThe line number of the file where the log statement was written.
methodnameThe method name where the log statement was written.

Definition at line 203 of file Logger.cpp.

References processLogMessage().

void BLOCXX_NAMESPACE::Logger::logMessage ( const String category,
const String message,
const char *  filename,
int  fileline,
const char *  methodname 
) const

Log a message using the default component and specified category.

The current log level is ignored.

Parameters:
categoryThe category of the log message.
messageThe message to log
filenameThe file where the log statement was written.
filelineThe line number of the file where the log statement was written.
methodnameThe method name where the log statement was written.

Definition at line 217 of file Logger.cpp.

References m_defaultComponent, and processLogMessage().

void BLOCXX_NAMESPACE::Logger::logWarning ( const String message,
const char *  filename = 0,
int  fileline = -1,
const char *  methodname = 0 
) const

If getLogLevel() >= E_WARNING_LEVEL, Log info.

Parameters:
messageThe string to log.
filenameThe file where the log statement was written.
filelineThe line number of the file where the log statement was written.
methodnameThe method name where the log statement was written.

Definition at line 146 of file Logger.cpp.

References BLOCXX_NAMESPACE::E_WARNING_LEVEL, m_defaultComponent, m_logLevel, processLogMessage(), and STR_WARNING_CATEGORY.

Logger & BLOCXX_NAMESPACE::Logger::operator= ( const Logger x)

Definition at line 94 of file Logger.cpp.

References m_appender, m_defaultComponent, and m_logLevel.

void BLOCXX_NAMESPACE::Logger::processLogMessage ( const LogMessage message) const [private]
void BLOCXX_NAMESPACE::Logger::setDefaultComponent ( const String component)

Sets the default component.

This function is not thread safe.

Parameters:
componentThe new default component

Definition at line 231 of file Logger.cpp.

References BLOCXX_ASSERT, and m_defaultComponent.

void BLOCXX_NAMESPACE::Logger::setLogLevel ( ELogLevel  logLevel)

Set the log level.

All lower level log messages will be ignored. This function is not thread safe.

Parameters:
logLevelthe level as an enumeration value.

Definition at line 246 of file Logger.cpp.

References m_logLevel.

Referenced by setLogLevel().

void BLOCXX_NAMESPACE::Logger::setLogLevel ( const String logLevel)

Set the log level.

All lower level log messages will be ignored. This function is not thread safe.

Parameters:
logLevelThe log level, valid values: { STR_FATAL_ERROR_CATEGORY, STR_ERROR_CATEGORY, STR_INFO_CATEGORY, STR_DEBUG_CATEGORY, STR_DEBUG2_CATEGORY, STR_DEBUG3_CATEGORY }. Case-insensitive. If logLevel is unknown, the level will be set to E_FATAL_ERROR_LEVEL

Definition at line 253 of file Logger.cpp.

References setLogLevel(), and stringToLogLevel().

ELogLevel BLOCXX_NAMESPACE::Logger::stringToLogLevel ( const String logLevel) [static]
void BLOCXX_NAMESPACE::Logger::swap ( Logger x)

Member Data Documentation

const GlobalString BLOCXX_NAMESPACE::Logger::STR_ALL_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("ALL") [static]

Definition at line 98 of file Logger.hpp.

Referenced by logLevelToString(), and stringToLogLevel().

const GlobalString BLOCXX_NAMESPACE::Logger::STR_DEBUG2_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("DEBUG2") [static]
const GlobalString BLOCXX_NAMESPACE::Logger::STR_DEBUG3_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("DEBUG3") [static]
const GlobalString BLOCXX_NAMESPACE::Logger::STR_DEBUG_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("DEBUG") [static]
const GlobalString BLOCXX_NAMESPACE::Logger::STR_DEFAULT_COMPONENT = BLOCXX_GLOBAL_STRING_INIT("none") [static]

Definition at line 99 of file Logger.hpp.

const GlobalString BLOCXX_NAMESPACE::Logger::STR_ERROR_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("ERROR") [static]
const GlobalString BLOCXX_NAMESPACE::Logger::STR_FATAL_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("FATAL") [static]
const GlobalString BLOCXX_NAMESPACE::Logger::STR_INFO_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("INFO") [static]
const GlobalString BLOCXX_NAMESPACE::Logger::STR_NONE_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("NONE") [static]

Definition at line 90 of file Logger.hpp.

Referenced by logLevelToString(), and stringToLogLevel().

const GlobalString BLOCXX_NAMESPACE::Logger::STR_WARNING_CATEGORY = BLOCXX_GLOBAL_STRING_INIT("WARNING") [static]

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