diff -r 0f94d369bb02 -r 1bcaac272cdf ucx/logging.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ucx/logging.h Fri Nov 30 21:18:13 2012 +0100 @@ -0,0 +1,37 @@ +#ifndef LOGGING_H +#define LOGGING_H + +#include "ucx.h" +#include "string.h" +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* leave enough space for custom log levels */ +#define UCX_LOGGER_ERROR 0x00 +#define UCX_LOGGER_WARN 0x10 +#define UCX_LOGGER_INFO 0x20 +#define UCX_LOGGER_TRACE 0x30 + +typedef struct { + FILE *stream; + unsigned int level; +} UcxLogger; + +UcxLogger *ucx_logger_new(FILE *stream, unsigned int level); +/* neither provide a free function nor a parameter for an allocator */ + +void ucx_logger_log(UcxLogger *logger, unsigned int level, + const sstr_t message); +#define ucx_logger_error(l,m) ucx_logger_log(l, UCX_LOGGER_ERROR, m) +#define ucx_logger_info(l,m) ucx_logger_log(l, UCX_LOGGER_INFO, m) +#define ucx_logger_warn(l,m) ucx_logger_log(l, UCX_LOGGER_WARN, m) +#define ucx_logger_trace(l,m) ucx_logger_log(l, UCX_LOGGER_TRACE, m) + +#ifdef __cplusplus +} +#endif + +#endif /* LOGGING_H */