38 #ifndef BLOCXX_LOGGER_HPP_INCLUDE_GUARD_ 39 #define BLOCXX_LOGGER_HPP_INCLUDE_GUARD_ 40 #include "blocxx/BLOCXX_config.h" 105 E_INVALID_MAX_BACKUP_INDEX
134 void logFatalError(const
String& message, const
char* filename = 0,
int fileline = -1, const
char* methodname = 0) const;
143 void logError(const
String& message, const
char* filename = 0,
int fileline = -1, const
char* methodname = 0) const;
152 void logWarning(const
String& message, const
char* filename = 0,
int fileline = -1, const
char* methodname = 0) const;
161 void logInfo(const
String& message, const
char* filename = 0,
int fileline = -1, const
char* methodname = 0) const;
170 void logDebug(const
String& message, const
char* filename = 0,
int fileline = -1, const
char* methodname = 0) const;
179 void logDebug2(const
String& message, const
char* filename = 0,
int fileline = -1, const
char* methodname = 0) const;
188 void logDebug3(const
String& message, const
char* filename = 0,
int fileline = -1, const
char* methodname = 0) const;
198 void logMessage(const
String& component, const
String& category, const
String& message) const;
209 void logMessage(const
String& component, const
String& category, const
String& message, const
char* filename,
int fileline, const
char* methodname) const;
217 void logMessage(const
String& category, const
String& message) const;
228 void logMessage(const
String& category, const
String& message, const
char* filename,
int fileline, const
char* methodname) const;
235 void logMessage(const
LogMessage& message) const;
242 void setDefaultComponent(const
String& component);
248 String getDefaultComponent() const;
273 void setLogLevel(
const String& logLevel);
294 bool categoryIsEnabled(
const String& category)
const;
299 bool levelIsEnabled(
const ELogLevel level)
const;
304 bool componentAndCategoryAreEnabled(
const String& component,
const String& category)
const;
319 void processLogMessage(
const LogMessage& message)
const;
331 #if defined(BLOCXX_HAVE_UUPRETTY_FUNCTIONUU) 332 #define BLOCXX_LOGGER_PRETTY_FUNCTION __PRETTY_FUNCTION__ 333 #elif defined(BLOCXX_HAVE_C99_UUFUNCUU) 334 #define BLOCXX_LOGGER_PRETTY_FUNCTION __func__ 336 #define BLOCXX_LOGGER_PRETTY_FUNCTION "" 345 #define BLOCXX_LOG_DEBUG3(logger, message) \ 349 if (::BLOCXX_NAMESPACE::Logger::asLogger((logger)).getLogLevel() >= ::BLOCXX_NAMESPACE::E_DEBUG3_LEVEL) \ 351 ::BLOCXX_NAMESPACE::Logger::asLogger((logger)).logMessage(::BLOCXX_NAMESPACE::Logger::STR_DEBUG3_CATEGORY, (message), __FILE__, __LINE__, BLOCXX_LOGGER_PRETTY_FUNCTION); \ 363 #define BLOCXX_LOG_DEBUG2(logger, message) \ 367 if (::BLOCXX_NAMESPACE::Logger::asLogger((logger)).getLogLevel() >= ::BLOCXX_NAMESPACE::E_DEBUG2_LEVEL) \ 369 ::BLOCXX_NAMESPACE::Logger::asLogger((logger)).logMessage(::BLOCXX_NAMESPACE::Logger::STR_DEBUG2_CATEGORY, (message), __FILE__, __LINE__, BLOCXX_LOGGER_PRETTY_FUNCTION); \ 381 #define BLOCXX_LOG_DEBUG(logger, message) \ 385 if (::BLOCXX_NAMESPACE::Logger::asLogger((logger)).getLogLevel() >= ::BLOCXX_NAMESPACE::E_DEBUG_LEVEL) \ 387 ::BLOCXX_NAMESPACE::Logger::asLogger((logger)).logMessage(::BLOCXX_NAMESPACE::Logger::STR_DEBUG_CATEGORY, (message), __FILE__, __LINE__, BLOCXX_LOGGER_PRETTY_FUNCTION); \ 399 #define BLOCXX_LOG_INFO(logger, message) \ 403 if (::BLOCXX_NAMESPACE::Logger::asLogger((logger)).getLogLevel() >= ::BLOCXX_NAMESPACE::E_INFO_LEVEL) \ 405 ::BLOCXX_NAMESPACE::Logger::asLogger((logger)).logMessage(::BLOCXX_NAMESPACE::Logger::STR_INFO_CATEGORY, (message), __FILE__, __LINE__, BLOCXX_LOGGER_PRETTY_FUNCTION); \ 416 #define BLOCXX_LOG_WARNING(logger, message) \ 420 if (::BLOCXX_NAMESPACE::Logger::asLogger((logger)).getLogLevel() >= ::BLOCXX_NAMESPACE::E_WARNING_LEVEL) \ 422 ::BLOCXX_NAMESPACE::Logger::asLogger((logger)).logMessage(::BLOCXX_NAMESPACE::Logger::STR_WARNING_CATEGORY, (message), __FILE__, __LINE__, BLOCXX_LOGGER_PRETTY_FUNCTION); \ 433 #define BLOCXX_LOG_ERROR(logger, message) \ 437 if (::BLOCXX_NAMESPACE::Logger::asLogger((logger)).getLogLevel() >= ::BLOCXX_NAMESPACE::E_ERROR_LEVEL) \ 439 ::BLOCXX_NAMESPACE::Logger::asLogger((logger)).logMessage(::BLOCXX_NAMESPACE::Logger::STR_ERROR_CATEGORY, (message), __FILE__, __LINE__, BLOCXX_LOGGER_PRETTY_FUNCTION); \ 450 #define BLOCXX_LOG_FATAL_ERROR(logger, message) \ 454 if (::BLOCXX_NAMESPACE::Logger::asLogger((logger)).getLogLevel() >= ::BLOCXX_NAMESPACE::E_FATAL_ERROR_LEVEL) \ 456 ::BLOCXX_NAMESPACE::Logger::asLogger((logger)).logMessage(::BLOCXX_NAMESPACE::Logger::STR_FATAL_CATEGORY, (message), __FILE__, __LINE__, BLOCXX_LOGGER_PRETTY_FUNCTION); \ 468 #define BLOCXX_LOG(logger, category, message) \ 472 if (::BLOCXX_NAMESPACE::Logger::asLogger((logger)).categoryIsEnabled((category))) \ 474 ::BLOCXX_NAMESPACE::Logger::asLogger((logger)).logMessage((category), (message), __FILE__, __LINE__, BLOCXX_LOGGER_PRETTY_FUNCTION); \ 489 #define BLOCXX_SLOG_DEBUG3(logger, message) \ 493 if (::BLOCXX_NAMESPACE::Logger::asLogger((logger)).getLogLevel() >= ::BLOCXX_NAMESPACE::E_DEBUG3_LEVEL) \ 497 ::BLOCXX_NAMESPACE::Logger::asLogger((logger)).logMessage(::BLOCXX_NAMESPACE::Logger::STR_DEBUG3_CATEGORY, buf.toString(), __FILE__, __LINE__, BLOCXX_LOGGER_PRETTY_FUNCTION); \ 512 #define BLOCXX_SLOG_DEBUG2(logger, message) \ 516 if (::BLOCXX_NAMESPACE::Logger::asLogger((logger)).getLogLevel() >= ::BLOCXX_NAMESPACE::E_DEBUG2_LEVEL) \ 520 ::BLOCXX_NAMESPACE::Logger::asLogger((logger)).logMessage(::BLOCXX_NAMESPACE::Logger::STR_DEBUG2_CATEGORY, buf.toString(), __FILE__, __LINE__, BLOCXX_LOGGER_PRETTY_FUNCTION); \ 535 #define BLOCXX_SLOG_DEBUG(logger, message) \ 539 if (::BLOCXX_NAMESPACE::Logger::asLogger((logger)).getLogLevel() >= ::BLOCXX_NAMESPACE::E_DEBUG_LEVEL) \ 543 ::BLOCXX_NAMESPACE::Logger::asLogger((logger)).logMessage(::BLOCXX_NAMESPACE::Logger::STR_DEBUG_CATEGORY, buf.toString(), __FILE__, __LINE__, BLOCXX_LOGGER_PRETTY_FUNCTION); \ 558 #define BLOCXX_SLOG_INFO(logger, message) \ 562 if (::BLOCXX_NAMESPACE::Logger::asLogger((logger)).getLogLevel() >= ::BLOCXX_NAMESPACE::E_INFO_LEVEL) \ 566 ::BLOCXX_NAMESPACE::Logger::asLogger((logger)).logMessage(::BLOCXX_NAMESPACE::Logger::STR_INFO_CATEGORY, buf.toString(), __FILE__, __LINE__, BLOCXX_LOGGER_PRETTY_FUNCTION); \ 581 #define BLOCXX_SLOG_WARNING(logger, message) \ 585 if (::BLOCXX_NAMESPACE::Logger::asLogger((logger)).getLogLevel() >= ::BLOCXX_NAMESPACE::E_WARNING_LEVEL) \ 589 ::BLOCXX_NAMESPACE::Logger::asLogger((logger)).logMessage(::BLOCXX_NAMESPACE::Logger::STR_WARNING_CATEGORY, buf.toString(), __FILE__, __LINE__, BLOCXX_LOGGER_PRETTY_FUNCTION); \ 604 #define BLOCXX_SLOG_ERROR(logger, message) \ 608 if (::BLOCXX_NAMESPACE::Logger::asLogger((logger)).getLogLevel() >= ::BLOCXX_NAMESPACE::E_ERROR_LEVEL) \ 612 ::BLOCXX_NAMESPACE::Logger::asLogger((logger)).logMessage(::BLOCXX_NAMESPACE::Logger::STR_ERROR_CATEGORY, buf.toString(), __FILE__, __LINE__, BLOCXX_LOGGER_PRETTY_FUNCTION); \ 626 #define BLOCXX_SLOG_FATAL_ERROR(logger, message) \ 630 if (::BLOCXX_NAMESPACE::Logger::asLogger((logger)).getLogLevel() >= ::BLOCXX_NAMESPACE::E_FATAL_ERROR_LEVEL) \ 634 ::BLOCXX_NAMESPACE::Logger::asLogger((logger)).logMessage(::BLOCXX_NAMESPACE::Logger::STR_FATAL_CATEGORY, buf.toString(), __FILE__, __LINE__, BLOCXX_LOGGER_PRETTY_FUNCTION); \ 650 #define BLOCXX_SLOG(logger, category, message) \ 654 if (::BLOCXX_NAMESPACE::Logger::asLogger((logger)).categoryIsEnabled((category))) \ 658 ::BLOCXX_NAMESPACE::Logger::asLogger((logger)).logMessage((category), buf.toString(), __FILE__, __LINE__, BLOCXX_LOGGER_PRETTY_FUNCTION); \ 663 #endif // BLOCXX_LOGGER_HPP_INCLUDE_GUARD_
BLOCXX_EXPORT_TEMPLATE(BLOCXX_COMMON_API, Array, Bool)
static const GlobalString STR_NONE_CATEGORY
String m_defaultComponent
const UInt32 INFINITE_TIMEOUT BLOCXX_DEPRECATED
Value that means infinite timeout.
IntrusiveReference< LogAppender > LogAppenderRef
static const GlobalString STR_ALL_CATEGORY
static const GlobalString STR_DEBUG2_CATEGORY
void swap(Array< T > &x, Array< T > &y)
This String class is an abstract data type that represents as NULL terminated string of characters...
static const GlobalString STR_INFO_CATEGORY
static const GlobalString STR_DEBUG3_CATEGORY
static const GlobalString STR_FATAL_CATEGORY
LogAppenderRef m_appender
static const Logger & asLogger(const LoggerRef &lgr)
static const GlobalString STR_WARNING_CATEGORY
static const Logger & asLogger(const Logger &lgr)
Utility functions for backward compatibility with LoggerRef and the BLOCXX_LOG macros.
class BLOCXX_COMMON_API Logger
static const GlobalString STR_DEBUG_CATEGORY
This class can be used to store a global variable that is lazily initialized in a thread safe manner...
static const GlobalString STR_ERROR_CATEGORY
#define BLOCXX_DECLARE_APIEXCEPTION(NAME, LINKAGE_SPEC)
Declare a new exception class named <NAME>Exception that derives from Exception This macro is typical...
static const GlobalString STR_DEFAULT_COMPONENT