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 */ |