BeRTOS
|
00001 00102 #ifndef CFG_LOG_H 00103 #define CFG_LOG_H 00104 00105 #include <cfg/debug.h> 00106 00107 // Use a default setting if nobody defined a log level 00108 #ifndef LOG_LEVEL 00109 #define LOG_LEVEL LOG_LVL_ERR 00110 #endif 00111 00112 // Use a default setting if nobody defined a log format 00113 #ifndef LOG_FORMAT 00114 #define LOG_FORMAT LOG_FMT_TERSE 00115 #endif 00116 00129 #define LOG_LVL_NONE 0 00130 #define LOG_LVL_ERR 1 00131 #define LOG_LVL_WARN 2 00132 #define LOG_LVL_INFO 3 00133 00144 #define LOG_FMT_VERBOSE 1 00145 #define LOG_FMT_TERSE 0 00146 00148 #if LOG_FORMAT == LOG_FMT_VERBOSE 00149 #define LOG_PRINT(str_level, str,...) kprintf("%s():%d:%s: " str, __func__, __LINE__, str_level, ## __VA_ARGS__) 00150 #elif LOG_FORMAT == LOG_FMT_TERSE 00151 #define LOG_PRINT(str_level, str,...) kprintf("%s: " str, str_level, ## __VA_ARGS__) 00152 #else 00153 #error No LOG_FORMAT defined 00154 #endif 00155 00156 #if LOG_LEVEL >= LOG_LVL_ERR 00157 00160 #define LOG_ERR(str,...) LOG_PRINT("ERR", str, ## __VA_ARGS__) 00161 00164 #define LOG_ERRB(x) x 00165 #else 00166 INLINE void LOG_ERR(UNUSED_ARG(const char *, fmt), ...) { /* nop */ } 00167 #define LOG_ERRB(x) /* Nothing */ 00168 #endif 00169 00170 #if LOG_LEVEL >= LOG_LVL_WARN 00171 00174 #define LOG_WARN(str,...) LOG_PRINT("WARN", str, ## __VA_ARGS__) 00175 00178 #define LOG_WARNB(x) x 00179 #else 00180 INLINE void LOG_WARN(UNUSED_ARG(const char *, fmt), ...) { /* nop */ } 00181 #define LOG_WARNB(x) /* Nothing */ 00182 #endif 00183 00184 #if LOG_LEVEL >= LOG_LVL_INFO 00185 00188 #define LOG_INFO(str,...) LOG_PRINT("INFO", str, ## __VA_ARGS__) 00189 00192 #define LOG_INFOB(x) x 00193 #else 00194 INLINE void LOG_INFO(UNUSED_ARG(const char *, fmt), ...) { /* nop */ } 00195 #define LOG_INFOB(x) /* Nothing */ 00196 #endif 00197 00200 #endif /* CFG_LOG_H */