ucx/logging.h

Fri, 08 Feb 2013 11:25:04 +0100

author
Mike Becker <universe@uap-core.de>
date
Fri, 08 Feb 2013 11:25:04 +0100
changeset 82
6068d965328b
parent 81
86a23238d8a1
child 83
3b552d7a9610
permissions
-rw-r--r--

logger can now log timestamps

     1 #ifndef LOGGING_H
     2 #define LOGGING_H
     4 #include "ucx.h"
     5 #include "map.h"
     6 #include "string.h"
     7 #include <stdio.h>
     9 #ifdef __cplusplus
    10 extern "C" {
    11 #endif
    13 /* leave enough space for custom log levels */
    14 #define UCX_LOGGER_ERROR        0x00
    15 #define UCX_LOGGER_WARN         0x10
    16 #define UCX_LOGGER_INFO         0x20
    17 #define UCX_LOGGER_TRACE        0x30
    19 #define UCX_LOGGER_LEVEL        0x01
    20 #define UCX_LOGGER_TIMESTAMP    0x02
    21 #define UCX_LOGGER_SOURCE       0x04
    23 typedef struct {
    24     FILE *stream;
    25     write_func writer;
    26     char *dateformat;
    27     unsigned int level;
    28     unsigned int mask;
    29     UcxMap* levels;
    30 } UcxLogger;
    32 UcxLogger *ucx_logger_new(FILE *stream, unsigned int level, unsigned int mask);
    33 void ucx_logger_free(UcxLogger* logger);
    35 void ucx_logger_logf(UcxLogger *logger, unsigned int level, const char* file,
    36         const unsigned int line, const char* format, ...);
    37 #define ucx_logger_log(logger, level, format...) \
    38     ucx_logger_logf(logger, level, __FILE__, __LINE__, format)
    39 #define ucx_logger_error(logger,format...) \
    40     ucx_logger_log(logger, UCX_LOGGER_ERROR, format)
    41 #define ucx_logger_info(logger,format...) \
    42     ucx_logger_log(logger, UCX_LOGGER_INFO, format)
    43 #define ucx_logger_warn(logger,format...) \
    44     ucx_logger_log(logger, UCX_LOGGER_WARN, format)
    45 #define ucx_logger_trace(logger,format...) \
    46     ucx_logger_log(logger, UCX_LOGGER_TRACE, format)
    48 #ifdef __cplusplus
    49 }
    50 #endif
    52 #endif /* LOGGING_H */

mercurial