26 #ifndef LIMAL_LOGGER_HPP
27 #define LIMAL_LOGGER_HPP
29 #include <blocxx/Array.hpp>
30 #include <blocxx/String.hpp>
31 #include <blocxx/StringStream.hpp>
32 #include <blocxx/LogConfig.hpp>
33 #include <blocxx/Logger.hpp>
34 #include <blocxx/CommonFwd.hpp>
35 #include <blocxx/LogAppender.hpp>
36 #include <blocxx/AppenderLogger.hpp>
55 #define LIMAL_LOG(logger, level, message) \
59 if( (logger).isEnabledFor(level)) \
61 (logger).logMessage((level), (message), \
63 BLOCXX_LOGGER_PRETTY_FUNCTION); \
66 } while(0) // note the missing semicolon
84 #define LIMAL_SLOG(logger, level, message) \
88 if( (logger).isEnabledFor(level)) \
90 blocxx::OStringStream _buf; \
92 (logger).logMessage((level), _buf.toString(), \
94 BLOCXX_LOGGER_PRETTY_FUNCTION); \
97 } while(0) // note the missing semicolon
114 #define LIMAL_LOG_FATAL(logger, logMessage) \
115 LIMAL_LOG(logger, blocxx::E_FATAL_ERROR_LEVEL, logMessage)
117 #define LIMAL_SLOG_FATAL(logger, logMessage) \
118 LIMAL_SLOG(logger, blocxx::E_FATAL_ERROR_LEVEL, logMessage)
135 #define LIMAL_LOG_ERROR(logger, logMessage) \
136 LIMAL_LOG(logger, blocxx::E_ERROR_LEVEL, logMessage)
138 #define LIMAL_SLOG_ERROR(logger, logMessage) \
139 LIMAL_SLOG(logger, blocxx::E_ERROR_LEVEL, logMessage)
156 #define LIMAL_LOG_INFO(logger, logMessage) \
157 LIMAL_LOG(logger, blocxx::E_INFO_LEVEL, logMessage)
159 #define LIMAL_SLOG_INFO(logger, logMessage) \
160 LIMAL_SLOG(logger, blocxx::E_INFO_LEVEL, logMessage)
177 #define LIMAL_LOG_DEBUG(logger, logMessage) \
178 LIMAL_LOG(logger, blocxx::E_DEBUG_LEVEL, logMessage)
180 #define LIMAL_SLOG_DEBUG(logger, logMessage) \
181 LIMAL_SLOG(logger, blocxx::E_DEBUG_LEVEL, logMessage)
184 namespace LIMAL_NAMESPACE
322 static blocxx::LoggerRef createCerrLogger(
323 const blocxx::String &component,
324 const blocxx::Array<blocxx::String> &components,
325 const blocxx::Array<blocxx::String> &categories,
326 const blocxx::String &messageFormat
360 static blocxx::LoggerRef createSyslogLogger(
361 const blocxx::String &component,
362 const blocxx::Array<blocxx::String> &components,
363 const blocxx::Array<blocxx::String> &categories,
364 const blocxx::String &messageFormat,
365 const blocxx::String &identity,
366 const blocxx::String &facility
404 static blocxx::LoggerRef createFileLogger(
405 const blocxx::String &component,
406 const blocxx::Array<blocxx::String> &components,
407 const blocxx::Array<blocxx::String> &categories,
408 const blocxx::String &messageFormat,
409 const blocxx::String &filename,
410 blocxx::UInt64 maxLogFileSize = 0,
411 blocxx::UInt32 maxBackupIndex = 0
443 static blocxx::LoggerRef createNullLogger(
444 const blocxx::String &component,
445 const blocxx::Array<blocxx::String> &components,
446 const blocxx::Array<blocxx::String> &categories,
447 const blocxx::String &messageFormat
458 Logger(
const blocxx::String &component =
"");
475 setDefaultLogger(
const blocxx::LoggerRef &ref)
490 setThreadLogger(
const blocxx::LoggerRef &ref)
499 inline static blocxx::LoggerRef getDefaultLogger()
510 inline static blocxx::LoggerRef getCurrentLogger()
527 logMessage(ELogLevel level,
528 const blocxx::String &message,
529 const char *filename = 0,
531 const char *methodname = 0)
const;
546 logMessage(
const blocxx::String &category,
547 const blocxx::String &message,
548 const char *filename = 0,
550 const char *methodname = 0)
const;
560 isEnabledFor(
const ELogLevel level)
const;
571 isEnabledFor(
const blocxx::String &category)
const;
575 static bool setDefaultFromLoggerRef(
const blocxx::LoggerRef &ref);
576 static bool setThreadFromLoggerRef(
const blocxx::LoggerRef &ref);
577 static blocxx::LoggerRef getDefaultAsLoggerRef();
578 static blocxx::LoggerRef getCurrentAsLoggerRef();
588 #endif // LIMAL_LOGGER_HPP