#ifndef FOOLOS_LOG_H #define FOOLOS_LOG_H #include "kernel.h" #include #define FOOLOS_LOG_ERROR 5 #define FOOLOS_LOG_WARNING 4 #define FOOLOS_LOG_INFO 3 #define FOOLOS_LOG_DEBUG 2 #define FOOLOS_LOG_FINE 1 void log(bool color,char *module_name, int prio, char *format_string, ...); // __FUNCTION__ ? #ifndef FOOLOS_LOG_OFF #ifdef FOOLOS_COLORLESS #define FOOLOS_LOG_COLOR false #define LOG_LABEL_INFO " [INFO] " #define LOG_LABEL_PANIC " [PANIC] " #define LOG_LABEL_FIX " [FIXME] " #define LOG_LABEL_TEST " [TEST] " #endif #ifndef FOOLOS_COLORLESS #define FOOLOS_LOG_COLOR true #define LOG_LABEL_INFO " \033[46;37m [INFO] \033[37;40m " #define LOG_LABEL_PANIC " \033[41;37m [PANIC] \033[37;40m " #define LOG_LABEL_FIX " \033[44;37m [FIXME] \033[37;40m " #define LOG_LABEL_TEST " \033[42;37m [TEST] \033[37;40m " #endif #define klog(...) log(FOOLOS_LOG_COLOR,__FILE__ ":" S2(__LINE__), 10, LOG_LABEL_INFO __VA_ARGS__) #define kpanic(...) {log(FOOLOS_LOG_COLOR,__FILE__ ":" S2(__LINE__) ,0, LOG_LABEL_PANIC __VA_ARGS__ ); while(1);} #ifdef HIDE_FIXME #define fixme(...) {} #else #define fixme(...) log(FOOLOS_LOG_COLOR,__FILE__ ":" S2(__LINE__) , 10, LOG_LABEL_FIX __VA_ARGS__) #endif #define testlog(...) log(FOOLOS_LOG_COLOR,__FILE__ ":" S2(__LINE__) , 10,LOG_LABEL_TEST __VA_ARGS__) #endif #ifdef FOOLOS_LOG_OFF #define kpanic(...) {while(1);} #define klog(...) {} #define fixme(...) {} #define testlog(...) {} #endif #endif