From f55c46eb397e0371b03ba91276beea9e8dd95d87 Mon Sep 17 00:00:00 2001 From: rofl0r Date: Wed, 30 Sep 2020 05:20:09 +0100 Subject: [PATCH] log: print timestamps with millisecond precision this allows easier time measurements for benchmarks. --- src/log.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/log.c b/src/log.c index dc76c1a..873abb2 100644 --- a/src/log.c +++ b/src/log.c @@ -108,7 +108,7 @@ void set_log_level (int level) void log_message (int level, const char *fmt, ...) { va_list args; - time_t nowtime; + struct timespec nowtime; char time_string[TIME_LENGTH]; char str[STRING_LENGTH]; @@ -174,13 +174,14 @@ void log_message (int level, const char *fmt, ...) } else { char *p; - nowtime = time (NULL); + clock_gettime(CLOCK_REALTIME, &nowtime); /* Format is month day hour:minute:second (24 time) */ strftime (time_string, TIME_LENGTH, "%b %d %H:%M:%S", - localtime (&nowtime)); + localtime (&nowtime.tv_sec)); - snprintf (str, STRING_LENGTH, "%-9s %s [%ld]: ", + snprintf (str, STRING_LENGTH, "%-9s %s.%03u [%ld]: ", syslog_level[level], time_string, + nowtime.tv_nsec/1000000u, (long int) getpid ()); /*