38 #ifndef BLOCXX_LOGGER_HPP_INCLUDE_GUARD_
39 #define BLOCXX_LOGGER_HPP_INCLUDE_GUARD_
40 #include "blocxx/BLOCXX_config.h"
51 namespace BLOCXX_NAMESPACE
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_