Mon, 08 Oct 2012 14:04:52 +0200
added logging API
| 54 | 1 | #ifndef LOGGING_H |
| 2 | #define LOGGING_H | |
| 3 | ||
| 4 | #include "string.h" | |
| 5 | #include <stdio.h> | |
| 6 | ||
| 7 | #ifdef __cplusplus | |
| 8 | extern "C" { | |
| 9 | #endif | |
| 10 | ||
| 11 | /* leave enough space for custom log levels */ | |
| 12 | #define UCX_LOGGER_ERROR 0x00 | |
| 13 | #define UCX_LOGGER_WARN 0x10 | |
| 14 | #define UCX_LOGGER_INFO 0x20 | |
| 15 | #define UCX_LOGGER_TRACE 0x30 | |
| 16 | ||
| 17 | typedef struct { | |
| 18 | FILE *stream; | |
| 19 | unsigned int level; | |
| 20 | } UcxLogger; | |
| 21 | ||
| 22 | UcxLogger *ucx_logger_new(FILE *stream, unsigned int level); | |
| 23 | /* neither provide a free function nor a parameter for an allocator */ | |
| 24 | ||
| 25 | void ucx_logger_log(UcxLogger *logger, unsigned int level, sstr_t message); | |
| 26 | #define ucx_logger_error(l,m) ucx_logger_log(l, UCX_LOGGER_ERROR, m) | |
| 27 | #define ucx_logger_info(l,m) ucx_logger_log(l, UCX_LOGGER_INFO, m) | |
| 28 | #define ucx_logger_warn(l,m) ucx_logger_log(l, UCX_LOGGER_WARN, m) | |
| 29 | #define ucx_logger_trace(l,m) ucx_logger_log(l, UCX_LOGGER_TRACE, m) | |
| 30 | ||
| 31 | #ifdef __cplusplus | |
| 32 | } | |
| 33 | #endif | |
| 34 | ||
| 35 | #endif /* LOGGING_H */ |