ucx/logging.h

Mon, 08 Oct 2012 14:04:52 +0200

author
Mike Becker <universe@uap-core.de>
date
Mon, 08 Oct 2012 14:04:52 +0200
changeset 54
f634f790661a
child 57
e18157c52985
permissions
-rw-r--r--

added logging API

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

mercurial