server 0.0.1
basicserverinfrastructure

src/interface/logger.c

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