18 #ifndef _BASE_LOGGING_PRINTF_STYLE_H_ 19 #define _BASE_LOGGING_PRINTF_STYLE_H_ 26 #if defined(BASE_LOG_DISABLE) 27 #define BASE_LOG_PRIORITY 0 28 #elif defined(BASE_LOG_FATAL) 29 #define BASE_LOG_PRIORITY 1 31 #elif defined(BASE_LOG_ERROR) 32 #define BASE_LOG_PRIORITY 2 34 #elif defined(BASE_LOG_WARN) 35 #define BASE_LOG_PRIORITY 3 37 #elif defined(BASE_LOG_INFO) 38 #define BASE_LOG_PRIORITY 4 40 #elif defined(BASE_LOG_DEBUG) 41 #define BASE_LOG_PRIORITY 5 45 #ifndef BASE_LOG_PRIORITY 48 #define BASE_LOG_PRIORITY 6 51 #ifdef BASE_LONG_NAMES 53 #define BASE_LOG_DEBUG(FORMAT, ARGS...) 54 #define BASE_LOG_INFO(FORMAT, ARGS...) 55 #define BASE_LOG_WARN(FORMAT, ARGS...) 56 #define BASE_LOG_ERROR(FORMAT, ARGS...) 57 #define BASE_LOG_FATAL(FORMAT, ARGS...) 58 #define BASE_LOG_CONFIGURE(PRIO, STREAM) 60 #define LOG_DEBUG(FORMAT, ARGS...) 61 #define LOG_INFO(FORMAT, ARGS...) 62 #define LOG_WARN(FORMAT, ARGS...) 63 #define LOG_ERROR(FORMAT, ARGS...) 64 #define LOG_FATAL(FORMAT, ARGS...) 65 #define LOG_CONFIGURE(PRIO, STREAM) 66 #endif // BASE_LONG_NAMES 68 #ifndef BASE_LOG_NAMESPACE 69 #define BASE_LOG_NAMESPACE "" 70 #endif // BASE_LOG_NAMESPACE 73 #define __STRINGIFY_(X) #X 75 #define __STRINGIFY(X) __STRINGIFY_(X) 84 #define __LOG(PRIO, FORMAT, ARGS ...) { ::base::logging::Logger::getInstance()->log(::base::logging::PRIO,__PRETTY_FUNCTION__, __FILE__, __LINE__, __STRINGIFY(BASE_LOG_NAMESPACE), FORMAT, ## ARGS); } 86 #define __LOG(PRIO, FORMAT, ARGS ...) { ::base::logging::Logger::getInstance()->log(::base::logging::PRIO,__func__, __FILE__, __LINE__, __STRINGIFY(BASE_LOG_NAMESPACE), FORMAT, ## ARGS); } 89 #ifdef BASE_LONG_NAMES 91 #if BASE_LOG_PRIORITY >= 1 93 #define BASE_LOG_FATAL(FORMAT, ARGS...) __LOG(FATAL_P, FORMAT, ## ARGS) 96 #if BASE_LOG_PRIORITY >= 2 98 #define BASE_LOG_ERROR(FORMAT, ARGS...) __LOG(ERROR_P, FORMAT, ## ARGS) 101 #if BASE_LOG_PRIORITY >= 3 103 #define BASE_LOG_WARN(FORMAT, ARGS...) __LOG(WARN_P, FORMAT, ## ARGS) 106 #if BASE_LOG_PRIORITY >= 4 108 #define BASE_LOG_INFO(FORMAT, ARGS...) __LOG(INFO_P, FORMAT, ## ARGS) 111 #if BASE_LOG_PRIORITY >= 5 112 #undef BASE_LOG_DEBUG 113 #define BASE_LOG_DEBUG(FORMAT, ARGS...) __LOG(DEBUG_P, FORMAT, ## ARGS) 116 #undef BASE_LOG_CONFIGURE 117 #define BASE_LOG_CONFIGURE(PRIO,STREAM) { ::base::logging::Logger::getInstance()->configure(::base::logging::PRIO, STREAM); } 119 #else // #ifdef BASE_LONG_NAMES 124 #define LOG_CONFIGURE(PRIO,STREAM) { ::base::logging::Logger::getInstance()->configure(::base::logging::PRIO, STREAM); } 126 #if BASE_LOG_PRIORITY >= 1 128 #define LOG_FATAL(FORMAT, ARGS...) __LOG(FATAL_P, FORMAT, ## ARGS) 131 #if BASE_LOG_PRIORITY >= 2 133 #define LOG_ERROR(FORMAT, ARGS...) __LOG(ERROR_P, FORMAT, ## ARGS) 136 #if BASE_LOG_PRIORITY >= 3 138 #define LOG_WARN(FORMAT, ARGS...) __LOG(WARN_P, FORMAT, ## ARGS) 141 #if BASE_LOG_PRIORITY >= 4 143 #define LOG_INFO(FORMAT, ARGS...) __LOG(INFO_P, FORMAT, ## ARGS) 146 #if BASE_LOG_PRIORITY >= 5 148 #define LOG_DEBUG(FORMAT, ARGS...) __LOG(DEBUG_P, FORMAT, ## ARGS) 151 #endif // BASE_LONG_NAMES 160 #include "../Singleton.hpp" 173 enum Priority {
UNKNOWN = 0,
UNKNOWN_P = 0,
FATAL = 1,
FATAL_P =1,
ERROR = 2,
ERROR_P = 2,
WARN = 3,
WARN_P = 3,
INFO = 4,
INFO_P = 4,
DEBUG = 5,
DEBUG_P = 5, ENDPRIORITIES };
234 void log(
Priority priority,
const char*
function,
const char* filename,
int line,
const char* name_space,
const char* format, ...)
const;
240 void logBuffer(
Priority priority,
const char*
function,
const char* file,
int line,
const char* name_space,
const char* buffer)
const;
247 Priority getLogLevelFromEnv()
const;
253 bool getLogColorFromEnv()
const;
262 std::vector<std::string> mPriorityNames;
266 const char* mpColorEnd;
268 std::vector<std::string> mLogFormatNames;
Definition: logging_printf_style.h:173
void log(Priority priority, const char *function, const char *filename, int line, const char *name_space, const char *format,...) const
Definition: logging_printf_style.cpp:135
void configure(Priority priority, FILE *outputStream)
Definition: logging_printf_style.cpp:63
Definition: logging_printf_style.h:177
Definition: logging_printf_style.h:173
Definition: Singleton.hpp:7
virtual ~Logger()
Definition: logging_printf_style.cpp:59
Definition: logging_printf_style.h:173
Definition: logging_printf_style.h:173
Definition: logging_printf_style.h:173
void logBuffer(Priority priority, const char *function, const char *file, int line, const char *name_space, const char *buffer) const
Definition: logging_printf_style.cpp:150
Definition: logging_printf_style.h:173
Definition: logging_printf_style.h:177
Definition: logging_iostream_style.h:48
LogFormat
Definition: logging_printf_style.h:177
Definition: logging_printf_style.h:173
Logger()
Definition: logging_printf_style.cpp:20
Definition: logging_printf_style.h:173
Definition: logging_printf_style.h:173
Definition: logging_printf_style.h:177
Definition: logging_printf_style.h:173
Definition: logging_printf_style.h:177
Definition: logging_printf_style.h:173
Definition: logging_printf_style.h:173
Priority
Definition: logging_printf_style.h:173
Definition: logging_printf_style.h:173
Logger is a logger that allows priority based logging with minimal impact on performance and minimal ...
Definition: logging_printf_style.h:203