6 #ifndef TAPKEE_LOGGING_H_ 7 #define TAPKEE_LOGGING_H_ 12 #define LEVEL_ENABLED_FIELD(X) bool X##_enabled 13 #define LEVEL_ENABLED_FIELD_INITIALIZER(X,value) X##_enabled(value) 14 #define LEVEL_HANDLERS(LEVEL) \ 15 void enable_##LEVEL() { LEVEL##_enabled = true; }; \ 16 void disable_##LEVEL() { LEVEL##_enabled = false; }; \ 17 bool is_##LEVEL##_enabled() { return LEVEL##_enabled; };\ 18 void message_##LEVEL(const std::string& msg) \ 20 if (LEVEL##_enabled) \ 21 impl->message_##LEVEL(msg); \ 23 #define LEVEL_HANDLERS_DECLARATION(LEVEL) \ 24 virtual void message_##LEVEL(const std::string& msg) = 0 25 #define LEVEL_HANDLERS_DEFAULT_IMPL(LEVEL) \ 26 virtual void message_##LEVEL(const std::string& msg) \ 28 if (os_ && os_->good()) \ 29 (*os_) << "["#LEVEL"] " << msg << "\n"; \ 64 DefaultLoggerImplementation(const DefaultLoggerImplementation&);
87 LoggingSingleton(
const LoggingSingleton& ls);
88 void operator=(
const LoggingSingleton& ls);
102 static LoggingSingleton s;
121 #undef LEVEL_HANDLERS 122 #undef LEVEL_HANDLERS_DECLARATION 123 #undef LEVEL_HANDLERS_DEFAULT_IMPL 124 #undef LEVEL_ENABLED_FIELD 125 #undef LEVEL_ENABLED_FIELD_INITIALIZER #define LEVEL_ENABLED_FIELD_INITIALIZER(X, value)
LoggerImplementation * get_logger_impl() const
getter for logger implementation
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_DECLARATION(LEVEL)
virtual ~LoggerImplementation()
virtual ~DefaultLoggerImplementation()
LoggerImplementation & operator=(const LoggerImplementation &)
static LoggingSingleton & instance()
#define LEVEL_HANDLERS_DEFAULT_IMPL(LEVEL)
LoggerImplementation * impl
DefaultLoggerImplementation()