server 0.0.1
basicserverinfrastructure

src/interface/logger.c

Go to the documentation of this file.
00001 #include <stdlib.h>
00002 #include <stdarg.h>
00003 
00004 #include "logger.h"
00005 #include "interface/logger.h"
00006 
00007 const struct interface i_Logger = {
00008         "logger",
00009         1
00010 };
00011 
00012 void
00013 loggerLog(void * _object, logger_level level, const char * const fmt, ...) {
00014         Logger object = _object;
00015 
00016         if (level >= object->min_level) {
00017                 char *  msg      = NULL;
00018                 size_t  msg_size = 0;
00019                 va_list params;
00020 
00021                 va_start(params, fmt);
00022                 msg_size = vsnprintf(msg, msg_size, fmt, params);
00023                 va_end(params);
00024 
00025                 msg = malloc(msg_size + 1);
00026 
00027                 va_start(params, fmt);
00028                 vsnprintf(msg, msg_size + 1, fmt, params);
00029                 va_end(params);
00030 
00031                 CALL(_object, Logger, log, level, msg);
00032 
00033                 free(msg);
00034         }
00035 }
00036 
00037 // vim: set ts=4 sw=4:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines