diff options
Diffstat (limited to 'include/logger.h')
-rw-r--r-- | include/logger.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/include/logger.h b/include/logger.h new file mode 100644 index 0000000..f582100 --- /dev/null +++ b/include/logger.h @@ -0,0 +1,35 @@ +#ifndef __LOGGER_H__ +#define __LOGGER_H__ + +#include "types.h" + + +#define LOG_DEBUG 0 +#define LOG_INFO 1 +#define LOG_WARN 2 +#define LOG_ERROR 3 /* will be fatal */ +#define LOG_FATAL 4 /* followed directly by maybe cleanup and exit */ + +#define __LOGFUNC__ __logger.func = __func__ + +#define logd( s, ... ) __LOGFUNC__; logger( LOG_DEBUG, s, ##__VA_ARGS__ ); +#define logi( s, ... ) __LOGFUNC__; logger( LOG_INFO, s, ##__VA_ARGS__ ); +#define logw( s, ... ) __LOGFUNC__; logger( LOG_WARN, s, ##__VA_ARGS__ ); +#define loge( s, ... ) __LOGFUNC__; logger( LOG_ERROR, s, ##__VA_ARGS__ ); +#define logf( s, ... ) __LOGFUNC__; logger( LOG_FATAL, s, ##__VA_ARGS__ ); + + +typedef struct { + Size fd; + String func; +} Logger; + +extern Logger __logger; + + +Size logger_init( void ); +void logger( Size level, String fmt, ... ); +void logger_term( void ); + + +#endif /* __DISPLAY_H__ */ |