1.1 --- a/ucx/logging.c Fri Feb 08 10:37:24 2013 +0100 1.2 +++ b/ucx/logging.c Fri Feb 08 11:25:04 2013 +0100 1.3 @@ -2,12 +2,14 @@ 1.4 #include <stdlib.h> 1.5 #include <string.h> 1.6 #include <stdarg.h> 1.7 +#include <time.h> 1.8 1.9 UcxLogger *ucx_logger_new(FILE *stream, unsigned int level, unsigned int mask) { 1.10 UcxLogger *logger = (UcxLogger*) malloc(sizeof(UcxLogger)); 1.11 if (logger != NULL) { 1.12 logger->stream = stream; 1.13 - logger->writer = fwrite; 1.14 + logger->writer = (write_func)fwrite; 1.15 + logger->dateformat = "%F %T %z "; 1.16 logger->level = level; 1.17 logger->mask = mask; 1.18 logger->levels = ucx_map_new(8); 1.19 @@ -31,16 +33,6 @@ 1.20 free(logger); 1.21 } 1.22 1.23 -void ucx_logger_setoutput(UcxLogger *logger, FILE *stream, 1.24 - size_t(*writer)(const void*,size_t,size_t,FILE*)) { 1.25 - if (stream) { 1.26 - logger->stream = stream; 1.27 - } 1.28 - if (writer) { 1.29 - logger->writer = writer; 1.30 - } 1.31 -} 1.32 - 1.33 void ucx_logger_logf(UcxLogger *logger, unsigned int level, const char* file, 1.34 const unsigned int line, const char *format, ...) { 1.35 if (level <= logger->level) { 1.36 @@ -57,7 +49,10 @@ 1.37 k += n; 1.38 msg[k++] = ' '; 1.39 } 1.40 - // TODO: timestamp 1.41 + if ((logger->mask & UCX_LOGGER_TIMESTAMP) > 0) { 1.42 + time_t now = time(NULL); 1.43 + k += strftime(msg+k, 128, logger->dateformat, localtime(&now)); 1.44 + } 1.45 if ((logger->mask & UCX_LOGGER_SOURCE) > 0) { 1.46 n = strlen(file); 1.47 memcpy(msg+k, file, n);