|
server 0.0.1
basicserverinfrastructure
|
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: