diff options
-rw-r--r-- | src/log.c | 16 |
1 files changed, 11 insertions, 5 deletions
@@ -65,20 +65,26 @@ void usbmuxd_log(enum loglevel level, const char *fmt, ...) { va_list ap; char *fs; - struct timeval ts; - struct tm *tp; if(level > log_level) return; - get_tick_count(&ts); - tp = localtime(&ts.tv_sec); - fs = malloc(20 + strlen(fmt)); if(log_syslog) { sprintf(fs, "[%d] %s\n", level, fmt); } else { + struct timeval ts; + struct tm tp_; + struct tm *tp; + + gettimeofday(&ts, NULL); +#ifdef HAVE_LOCALTIME_R + tp = localtime_r(&ts.tv_sec, &tp_); +#else + tp = localtime(&ts.tv_sec); +#endif + strftime(fs, 10, "[%H:%M:%S", tp); sprintf(fs+9, ".%03d][%d] %s\n", (int)(ts.tv_usec / 1000), level, fmt); } |