From f828654e1097bdbb40fedebd9ac1ea045b183e15 Mon Sep 17 00:00:00 2001 From: Jeff Davis Date: Mon, 7 Sep 2015 13:46:31 -0700 Subject: [PATCH] Add log_line_prefix option 'n' for Unix epoch. Prints time as Unix epoch with milliseconds. Tomas Vondra, reviewed by Fabien Coelho. --- doc/src/sgml/config.sgml | 5 +++++ src/backend/utils/error/elog.c | 14 ++++++++++++++ src/backend/utils/misc/postgresql.conf.sample | 1 + 3 files changed, 20 insertions(+) diff --git a/doc/src/sgml/config.sgml b/doc/src/sgml/config.sgml index e3dc23bf13..3ced399730 100644 --- a/doc/src/sgml/config.sgml +++ b/doc/src/sgml/config.sgml @@ -4629,6 +4629,11 @@ local0.* /var/log/postgresql Time stamp with milliseconds no + + %n + Time stamp with milliseconds (as a Unix epoch) + no + %i Command tag: type of session's current command diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index 088c714821..9114c55b66 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -2438,6 +2438,20 @@ log_line_prefix(StringInfo buf, ErrorData *edata) appendStringInfoString(buf, strfbuf); } break; + case 'n': + { + struct timeval tv; + char strfbuf[128]; + + gettimeofday(&tv, NULL); + sprintf(strfbuf, "%ld.%03d", tv.tv_sec, (int)(tv.tv_usec / 1000)); + + if (padding != 0) + appendStringInfo(buf, "%*s", padding, strfbuf); + else + appendStringInfoString(buf, strfbuf); + } + break; case 's': if (formatted_start_time[0] == '\0') setup_formatted_start_time(); diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index 695a88fe7d..c33e585619 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -425,6 +425,7 @@ # %p = process ID # %t = timestamp without milliseconds # %m = timestamp with milliseconds + # %n = timestamp with milliseconds (as a Unix epoch) # %i = command tag # %e = SQL state # %c = session ID -- 2.40.0