#include <Logger.hpp>
Inheritance diagram for BLOCXX_NAMESPACE::Logger:
Public Types | |
enum | ELoggerErrorCodes { E_UNKNOWN_LOG_APPENDER_TYPE, E_INVALID_MAX_FILE_SIZE, E_INVALID_MAX_BACKUP_INDEX } |
Public Member Functions | |
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 | 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 | 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) |
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. | |
LoggerRef | clone () const |
Make a copy of the derived instance. | |
virtual | ~Logger () |
Static Public Member Functions | |
static String | getConfigItem (const LoggerConfigMap &configItems, const String &itemName, const String &defRetVal=String()) |
Get a value from a given LoggerConfigMap. | |
static void | setConfigItem (LoggerConfigMap &configItems, const String &itemName, const String &value, EOverwritePreviousConfigItemFlag overwritePrevious=E_OVERWRITE_PREVIOUS_CONFIG_ITEM) |
Set a value for a given item name in a given LoggerConfigMap. | |
static blocxx::LoggerRef | getCurrentLogger () |
Get a copy of the per thread LoggerRef or if not set, the default one. | |
static blocxx::LoggerRef | getDefaultLogger () |
Returns a copy of default LoggerRef. | |
static bool | setDefaultLogger (const blocxx::LoggerRef &ref) |
Set the default global logger. | |
static bool | setThreadLogger (const blocxx::LoggerRef &ref) |
Set a per thread Logger that overrides the default one. | |
Static Public Attributes | |
static const String | STR_NONE_CATEGORY |
static const String | STR_FATAL_CATEGORY |
static const String | STR_ERROR_CATEGORY |
static const String | STR_INFO_CATEGORY |
static const String | STR_DEBUG_CATEGORY |
static const String | STR_ALL_CATEGORY |
static const String | STR_DEFAULT_COMPONENT |
Protected Member Functions | |
Logger (const String &defaultComponent, const ELogLevel logLevel) | |
virtual void | doProcessLogMessage (const LogMessage &message) const =0 |
Output the message. | |
virtual bool | doCategoryIsEnabled (const String &category) const |
Return whether logging is enabled for the category. | |
virtual bool | doComponentAndCategoryAreEnabled (const String &component, const String &category) const |
Return whether logging is enabled for the component and category. | |
virtual LoggerRef | doClone () const =0 |
Make a copy of the derived instance. | |
Logger (const Logger &) | |
Logger & | operator= (const Logger &) |
void | swap (Logger &x) |
Private Member Functions | |
void | processLogMessage (const LogMessage &message) const |
Private Attributes | |
ELogLevel | m_logLevel |
String | m_defaultComponent |
Used to output log messages. A Logger has a component and a log level. The component will be used for all log messages generated, unless another component explicitly specified in a call to logMessage().
Invariants:
Responsibilities:
Collaborators:
Thread safety: read/write, except for setDefaultComponent() and setLogLevel() which should only be called during initialization phase.
Copy semantics: Non-copyable
Exception safety: Strong
Definition at line 78 of file Logger.hpp.
|
Definition at line 90 of file Logger.hpp. |
|
Definition at line 94 of file Logger.cpp. |
|
Definition at line 99 of file Logger.cpp. References BLOCXX_ASSERT, and m_defaultComponent. |
|
Definition at line 326 of file Logger.cpp. |
|
Determine if the log category is enabled.
Definition at line 262 of file Logger.cpp. References doCategoryIsEnabled(). Referenced by BLOCXX_NAMESPACE::AppenderLogger::doCategoryIsEnabled(). |
|
Make a copy of the derived instance. Provided the derived class has a suitable copy constructor, an implementation of clone should simply be: LoggerRef DerivedLogger::doClone() const { return LoggerRef(new DerivedLogger(*this)); } Definition at line 320 of file Logger.cpp. References doClone(). |
|
Determine if the component and category are both enabled.
Definition at line 270 of file Logger.cpp. References doComponentAndCategoryAreEnabled(). Referenced by BLOCXX_NAMESPACE::AppenderLogger::doComponentAndCategoryAreEnabled(). |
|
Return whether logging is enabled for the category. Default implementation always returns true. Reimplemented in BLOCXX_NAMESPACE::AppenderLogger. Definition at line 288 of file Logger.cpp. Referenced by categoryIsEnabled(). |
|
Make a copy of the derived instance. Provided the derived class has a suitable copy constructor, an implementation of clone should simply be: LoggerRef DerivedLogger::doClone() const { return LoggerRef(new DerivedLogger(*this)); } Implemented in BLOCXX_NAMESPACE::AppenderLogger, BLOCXX_NAMESPACE::CerrLogger, and BLOCXX_NAMESPACE::NullLogger. Referenced by clone(). |
|
Return whether logging is enabled for the component and category. Default implementation always returns true. Reimplemented in BLOCXX_NAMESPACE::AppenderLogger. Definition at line 279 of file Logger.cpp. Referenced by componentAndCategoryAreEnabled(). |
|
Output the message. Calls will not be serialized, so the derived class' implementation must be thread safe. Implemented in BLOCXX_NAMESPACE::AppenderLogger, BLOCXX_NAMESPACE::CerrLogger, and BLOCXX_NAMESPACE::NullLogger. Referenced by processLogMessage(). |
|
Get a value from a given LoggerConfigMap.
Definition at line 68 of file Logger.cpp. References BLOCXX_NAMESPACE::Map< Key, T, Compare >::end(), BLOCXX_NAMESPACE::Map< Key, T, Compare >::find(), and i. |
|
Get a copy of the per thread LoggerRef or if not set, the default one. If neither setDefaultLogger() or setThreadLogger() has been called, the default logger will be set to a NullLogger, and then returned. Definition at line 444 of file Logger.cpp. References BLOCXX_NAMESPACE::callOnce(), BLOCXX_NAMESPACE::g_loggerKey, BLOCXX_NAMESPACE::g_onceGuard, getDefaultLogger(), and BLOCXX_NAMESPACE::initGuardAndKey(). |
|
Gets the default component.
Definition at line 305 of file Logger.cpp. References m_defaultComponent. |
|
Returns a copy of default LoggerRef. If you want to log messages, you shouldn't call this function. Use getCurrentLogger() instead. If setDefaultLogger() hasn't been called, the default logger will be set to a NullLogger, and then returned. Definition at line 429 of file Logger.cpp. References BLOCXX_NAMESPACE::callOnce(), BLOCXX_NAMESPACE::g_defaultLogger, BLOCXX_NAMESPACE::g_mutexGuard, BLOCXX_NAMESPACE::g_onceGuard, and BLOCXX_NAMESPACE::initGuardAndKey(). Referenced by getCurrentLogger(). |
|
Definition at line 257 of file Logger.hpp. Referenced by BLOCXX_NAMESPACE::AppenderLogger::getLevel(), and levelIsEnabled(). |
|
Check if the logger is enabled for given level.
Definition at line 460 of file Logger.cpp. References getLogLevel(). |
|
If getLogLevel() >= E_DEBUG_LEVEL, Log debug info.
Definition at line 196 of file Logger.cpp. References BLOCXX_NAMESPACE::E_DEBUG_LEVEL, m_defaultComponent, m_logLevel, processLogMessage(), and STR_DEBUG_CATEGORY. |
|
If getLogLevel() >= E_ERROR_LEVEL, Log message with an error category and the default component.
Definition at line 168 of file Logger.cpp. References BLOCXX_NAMESPACE::E_ERROR_LEVEL, m_defaultComponent, m_logLevel, processLogMessage(), and STR_ERROR_CATEGORY. |
|
Log message with a fatal error category and the default component.
Definition at line 153 of file Logger.cpp. References BLOCXX_NAMESPACE::E_FATAL_ERROR_LEVEL, m_defaultComponent, m_logLevel, processLogMessage(), and STR_FATAL_CATEGORY. |
|
If getLogLevel() >= E_INFO_LEVEL, Log info.
Definition at line 182 of file Logger.cpp. References BLOCXX_NAMESPACE::E_INFO_LEVEL, m_defaultComponent, m_logLevel, processLogMessage(), and STR_INFO_CATEGORY. |
|
Log a message. The current log level is ignored.
Definition at line 254 of file Logger.cpp. References processLogMessage(). |
|
Log a message using the default component and specified category. The current log level is ignored.
Definition at line 242 of file Logger.cpp. References m_defaultComponent, and processLogMessage(). |
|
Log a message using the default component and specified category. The current log level is ignored.
Definition at line 233 of file Logger.cpp. References m_defaultComponent, and processLogMessage(). |
|
Log a message using the specified component and category The current log level is ignored.
Definition at line 220 of file Logger.cpp. References processLogMessage(). |
|
Log a message using the specified component and category The current log level is ignored.
Definition at line 210 of file Logger.cpp. References processLogMessage(). Referenced by BLOCXX_NAMESPACE::AppenderLogger::doProcessLogMessage(). |
|
Definition at line 337 of file Logger.cpp. References m_defaultComponent, and m_logLevel. |
|
Definition at line 110 of file Logger.cpp. References BLOCXX_ASSERT, BLOCXX_NAMESPACE::LogMessage::category, BLOCXX_NAMESPACE::LogMessage::component, doProcessLogMessage(), BLOCXX_NAMESPACE::String::empty(), and BLOCXX_NAMESPACE::LogMessage::message. Referenced by logDebug(), logError(), logFatalError(), logInfo(), and logMessage(). |
|
Set a value for a given item name in a given LoggerConfigMap.
Definition at line 80 of file Logger.cpp. References BLOCXX_NAMESPACE::Map< Key, T, Compare >::end(), and BLOCXX_NAMESPACE::Map< Key, T, Compare >::find(). |
|
Sets the default component. This function is not thread safe.
Definition at line 296 of file Logger.cpp. References BLOCXX_ASSERT, and m_defaultComponent. |
|
Set the default global logger.
Definition at line 387 of file Logger.cpp. References BLOCXX_NAMESPACE::callOnce(), BLOCXX_NAMESPACE::g_defaultLogger, BLOCXX_NAMESPACE::g_mutexGuard, BLOCXX_NAMESPACE::g_onceGuard, and BLOCXX_NAMESPACE::initGuardAndKey(). |
|
Set the log level. All lower level log messages will be ignored. This function is not thread safe.
Definition at line 122 of file Logger.cpp. References BLOCXX_NAMESPACE::E_INFO_LEVEL, BLOCXX_NAMESPACE::String::equalsIgnoreCase(), setLogLevel(), and STR_INFO_CATEGORY. |
|
Set the log level. All lower level log messages will be ignored. This function is not thread safe.
Definition at line 312 of file Logger.cpp. References m_logLevel. Referenced by setLogLevel(). |
|
Set a per thread Logger that overrides the default one.
Definition at line 404 of file Logger.cpp. References BLOCXX_ASSERTMSG, BLOCXX_NAMESPACE::callOnce(), BLOCXX_NAMESPACE::freeThreadLogger(), BLOCXX_NAMESPACE::g_loggerKey, BLOCXX_NAMESPACE::g_onceGuard, and BLOCXX_NAMESPACE::initGuardAndKey(). |
|
Definition at line 347 of file Logger.cpp. References m_defaultComponent, m_logLevel, BLOCXX_NAMESPACE::String::swap(), and BLOCXX_NAMESPACE::swap(). |
|
Definition at line 352 of file Logger.hpp. Referenced by getDefaultComponent(), logDebug(), logError(), logFatalError(), Logger(), logInfo(), logMessage(), operator=(), setDefaultComponent(), and swap(). |
|
Definition at line 351 of file Logger.hpp. Referenced by logDebug(), logError(), logFatalError(), logInfo(), operator=(), setLogLevel(), and swap(). |
|
Definition at line 87 of file Logger.hpp. |
|
Definition at line 86 of file Logger.hpp. Referenced by BLOCXX_NAMESPACE::SyslogAppender::doProcessLogMessage(), BLOCXX_NAMESPACE::LogAppender::getLogLevel(), and logDebug(). |
|
Definition at line 88 of file Logger.hpp. |
|
Definition at line 84 of file Logger.hpp. Referenced by BLOCXX_NAMESPACE::SyslogAppender::doProcessLogMessage(), BLOCXX_NAMESPACE::LogAppender::getLogLevel(), and logError(). |
|
Definition at line 83 of file Logger.hpp. Referenced by BLOCXX_NAMESPACE::SyslogAppender::doProcessLogMessage(), BLOCXX_NAMESPACE::LogAppender::getLogLevel(), and logFatalError(). |
|
Definition at line 85 of file Logger.hpp. Referenced by BLOCXX_NAMESPACE::SyslogAppender::doProcessLogMessage(), BLOCXX_NAMESPACE::LogAppender::getLogLevel(), logInfo(), and setLogLevel(). |
|
Definition at line 82 of file Logger.hpp. |