Server 0.0.1
HTTP/REST server implementation

src/logger/interface/i_logger.c

Go to the documentation of this file.
00001 
00023 #include <stdlib.h>
00024 #include <stdio.h>
00025 #include <stdarg.h>
00026 
00027 #include "logger/logger.h"
00028 #include "logger/interface/logger.h"
00029 
00030 const struct interface i_Logger = {
00031         "logger",
00032         1
00033 };
00034 
00035 void
00036 loggerLog(void * _object, logger_level level, const char * const fmt, ...) {
00037         Logger object = _object;
00038 
00039         if (level >= object->min_level) {
00040                 char *  msg      = NULL;
00041                 size_t  msg_size = 0;
00042                 va_list params;
00043 
00044                 va_start(params, fmt);
00045                 msg_size = vsnprintf(msg, msg_size, fmt, params);
00046                 va_end(params);
00047 
00048                 msg = malloc(msg_size + 1);
00049 
00050                 va_start(params, fmt);
00051                 vsnprintf(msg, msg_size + 1, fmt, params);
00052                 va_end(params);
00053 
00054                 CALL(_object, Logger, log, level, msg);
00055 
00056                 free(msg);
00057         }
00058 }
00059 
00060 // vim: set ts=4 sw=4:
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines