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