ucx/logging.h

changeset 54
f634f790661a
child 57
e18157c52985
equal deleted inserted replaced
53:e533c170bfb8 54:f634f790661a
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 */

mercurial