diff --git a/drivers/syslog/Kconfig b/drivers/syslog/Kconfig index 9fd74e4e80..251524d4b2 100644 --- a/drivers/syslog/Kconfig +++ b/drivers/syslog/Kconfig @@ -137,6 +137,11 @@ config SYSLOG_TIMESTAMP_FORMAT Formatter string for syslog timestamp printing. Uses the standard "strftime" format specifiers. +config SYSLOG_TIMESTAMP_FORMAT_MICROSECOND + bool "Append microseconds after seconds" + default y + depends on SYSLOG_TIMESTAMP_FORMAT = "%e/%m/%y %H:%M:%S" + config SYSLOG_TIMESTAMP_BUFFER int "Formatted timestamp buffer size" default 64 diff --git a/drivers/syslog/vsyslog.c b/drivers/syslog/vsyslog.c index 171966da9f..95de17c568 100644 --- a/drivers/syslog/vsyslog.c +++ b/drivers/syslog/vsyslog.c @@ -130,11 +130,16 @@ int nx_vsyslog(int priority, FAR const IPTR char *fmt, FAR va_list *ap) if (ret > 0) { +#if defined(CONFIG_SYSLOG_TIMESTAMP_FORMAT_MICROSECOND) + ret = lib_sprintf(&stream.public, "[%s.%06ld] ", + date_buf, ts.tv_nsec / NSEC_PER_USEC); +#else ret = lib_sprintf(&stream.public, "[%s] ", date_buf); +#endif } #else ret = lib_sprintf(&stream.public, "[%5jd.%06ld] ", - (uintmax_t)ts.tv_sec, ts.tv_nsec / 1000); + (uintmax_t)ts.tv_sec, ts.tv_nsec / NSEC_PER_USEC); #endif #endif