summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/log.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/log.c b/src/log.c
index 46839ee..cd7c2d5 100644
--- a/src/log.c
+++ b/src/log.c
@@ -65,20 +65,26 @@ void usbmuxd_log(enum loglevel level, const char *fmt, ...)
65{ 65{
66 va_list ap; 66 va_list ap;
67 char *fs; 67 char *fs;
68 struct timeval ts;
69 struct tm *tp;
70 68
71 if(level > log_level) 69 if(level > log_level)
72 return; 70 return;
73 71
74 get_tick_count(&ts);
75 tp = localtime(&ts.tv_sec);
76
77 fs = malloc(20 + strlen(fmt)); 72 fs = malloc(20 + strlen(fmt));
78 73
79 if(log_syslog) { 74 if(log_syslog) {
80 sprintf(fs, "[%d] %s\n", level, fmt); 75 sprintf(fs, "[%d] %s\n", level, fmt);
81 } else { 76 } else {
77 struct timeval ts;
78 struct tm tp_;
79 struct tm *tp;
80
81 gettimeofday(&ts, NULL);
82#ifdef HAVE_LOCALTIME_R
83 tp = localtime_r(&ts.tv_sec, &tp_);
84#else
85 tp = localtime(&ts.tv_sec);
86#endif
87
82 strftime(fs, 10, "[%H:%M:%S", tp); 88 strftime(fs, 10, "[%H:%M:%S", tp);
83 sprintf(fs+9, ".%03d][%d] %s\n", (int)(ts.tv_usec / 1000), level, fmt); 89 sprintf(fs+9, ".%03d][%d] %s\n", (int)(ts.tv_usec / 1000), level, fmt);
84 } 90 }