This patchs adds a FEATURE to allow printing milliseconds in addition in the timestamps generated by syslogd
Signed-off-by: Christophe Leroy <[email protected]> --- sysklogd/syslogd.c | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/sysklogd/syslogd.c b/sysklogd/syslogd.c index 4265f4f90..6b58d668b 100644 --- a/sysklogd/syslogd.c +++ b/sysklogd/syslogd.c @@ -88,6 +88,13 @@ //config: entire filesystem, which may cause your system to //config: break badly. //config: +//config:config FEATURE_SYSLOGD_MS +//config: bool "Include milliseconds in time" +//config: default n +//config: depends on SYSLOGD +//config: help +//config: This adds milliseconds to printed timestamps +//config: //config:config FEATURE_IPC_SYSLOG_BUFFER_SIZE //config: int "Circular buffer size in Kbytes (minimum 4KB)" //config: default 16 @@ -814,17 +821,30 @@ static void parse_fac_prio_20(int pri, char *res20) static void timestamp_and_log(int pri, char *msg, int len) { char *timestamp; +#if ENABLE_FEATURE_SYSLOGD_MS + struct timeval now; +#else time_t now; +#endif /* Jan 18 00:11:22 msg... */ /* 01234567890123456 */ if (len < 16 || msg[3] != ' ' || msg[6] != ' ' || msg[9] != ':' || msg[12] != ':' || msg[15] != ' ' ) { +#if ENABLE_FEATURE_SYSLOGD_MS + gettimeofday(&now, NULL); + timestamp = ctime(&now.tv_sec) + 4; /* skip day of week */ +#else time(&now); timestamp = ctime(&now) + 4; /* skip day of week */ +#endif } else { +#if ENABLE_FEATURE_SYSLOGD_MS + now.tv_sec = 0; +#else now = 0; +#endif timestamp = msg; msg += 16; } @@ -836,11 +856,19 @@ static void timestamp_and_log(int pri, char *msg, int len) } if (option_mask32 & OPT_small) +#if ENABLE_FEATURE_SYSLOGD_MS + sprintf(G.printbuf, "%s.%3.3ld %s\n", timestamp, now.tv_usec / 1000, msg); +#else sprintf(G.printbuf, "%s %s\n", timestamp, msg); +#endif else { char res[20]; parse_fac_prio_20(pri, res); +#if ENABLE_FEATURE_SYSLOGD_MS + sprintf(G.printbuf, "%s.%3.3ld %.64s %s %s\n", timestamp, now.tv_usec / 1000, G.hostname, res, msg); +#else sprintf(G.printbuf, "%s %.64s %s %s\n", timestamp, G.hostname, res, msg); +#endif } /* Log message locally (to file or shared mem) */ @@ -868,7 +896,11 @@ static void timestamp_and_log(int pri, char *msg, int len) return; } #endif +#if ENABLE_FEATURE_SYSLOGD_MS + log_locally(now.tv_sec, G.printbuf, &G.logFile); +#else log_locally(now, G.printbuf, &G.logFile); +#endif } } -- 2.13.3 _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
