6 #ifndef TAPKEE_LOGGING_H_ 7 #define TAPKEE_LOGGING_H_ 13 #define LEVEL_ENABLED_FIELD(X) bool X##_enabled 14 #define LEVEL_ENABLED_FIELD_INITIALIZER(X,value) X##_enabled(value) 15 #define LEVEL_HANDLERS(LEVEL) \ 16 void enable_##LEVEL() { LEVEL##_enabled = true; }; \ 17 void disable_##LEVEL() { LEVEL##_enabled = false; }; \ 18 bool is_##LEVEL##_enabled() { return LEVEL##_enabled; };\ 19 void message_##LEVEL(const std::string& msg) \ 21 if (LEVEL##_enabled) \ 22 impl->message_##LEVEL(msg); \ 24 #define LEVEL_HANDLERS_DECLARATION(LEVEL) \ 25 virtual void message_##LEVEL(const std::string& msg) = 0 26 #define LEVEL_HANDLERS_DEFAULT_IMPL(STREAM, LEVEL) \ 27 virtual void message_##LEVEL(const std::string& msg) \ 29 if (STREAM && STREAM->good()) \ 30 (*STREAM) << "["#LEVEL"] " << msg << "\n"; \ 123 #undef LEVEL_HANDLERS 124 #undef LEVEL_HANDLERS_DECLARATION 125 #undef LEVEL_HANDLERS_DEFAULT_IMPL 126 #undef LEVEL_ENABLED_FIELD 127 #undef LEVEL_ENABLED_FIELD_INITIALIZER #define LEVEL_ENABLED_FIELD_INITIALIZER(X, value)
DefaultLoggerImplementation & operator=(const DefaultLoggerImplementation &)
Default std::cout implementation of LoggerImplementation.
void set_logger_impl(LoggerImplementation *i)
setter for logger implementation
#define LEVEL_ENABLED_FIELD(X)
#define LEVEL_HANDLERS(LEVEL)
A base class for logger required by the library.
Main logging singleton used by the library. Can use provided LoggerImplementation if necessary...
#define LEVEL_HANDLERS_DEFAULT_IMPL(STREAM, LEVEL)
#define LEVEL_HANDLERS_DECLARATION(LEVEL)
virtual ~LoggerImplementation()
virtual ~DefaultLoggerImplementation()
LoggerImplementation & operator=(const LoggerImplementation &)
void operator=(const LoggingSingleton &ls)
static LoggingSingleton & instance()
LoggerImplementation * impl
LoggerImplementation * get_logger_impl() const
getter for logger implementation
DefaultLoggerImplementation()