From 8f03aabe3022e2df4289a3db638eebe5108ecee4 Mon Sep 17 00:00:00 2001 From: Kim Woelders Date: Wed, 31 Oct 2018 12:09:37 +0100 Subject: [PATCH] Add timestamp when logging to stdout --- ttynvt.c | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/ttynvt.c b/ttynvt.c index 77c71b4..eeec5c8 100644 --- a/ttynvt.c +++ b/ttynvt.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include "telnet.h" @@ -83,18 +84,40 @@ typedef struct { #include #define gettid() (pid_t)syscall(__NR_gettid) +static const char *_hms_txt(char *buf, unsigned int len) +{ + struct timeval tv; + unsigned int sod, hh, mm, ss; + + gettimeofday(&tv, NULL); + + sod = tv.tv_sec % (24 * 3600); + hh = sod / 3600; + mm = (sod - hh * 3600) / 60; + ss = sod - hh * 3600 - mm * 60; + snprintf(buf, len, "%02d:%02d:%02d.%06d", + hh, mm, ss, (unsigned int)tv.tv_usec); + + return buf; +} + _PRF2_ static void _log(int prio, const char *fmt, ...) { va_list arg; - char buf[256]; + char buf[256], buft[64]; va_start(arg, fmt); vsnprintf(buf, sizeof(buf), fmt, arg); if (ttynvt_param.logstd) - printf("[%d] %d: %s", gettid(), prio, buf); + { + printf("%s: [%d] %d: %s", + _hms_txt(buft, sizeof(buft)), gettid(), prio, buf); + } else + { syslog(prio, "[%d] %s", gettid(), buf); + } va_end(arg); }