Add log_line_prefix option 'n' for Unix epoch.

Prints time as Unix epoch with milliseconds.

Tomas Vondra, reviewed by Fabien Coelho.
This commit is contained in:
Jeff Davis 2015-09-07 13:46:31 -07:00
parent 37239ef8c9
commit f828654e10
3 changed files with 20 additions and 0 deletions

View File

@ -4629,6 +4629,11 @@ local0.* /var/log/postgresql
<entry>Time stamp with milliseconds</entry>
<entry>no</entry>
</row>
<row>
<entry><literal>%n</literal></entry>
<entry>Time stamp with milliseconds (as a Unix epoch)</entry>
<entry>no</entry>
</row>
<row>
<entry><literal>%i</literal></entry>
<entry>Command tag: type of session's current command</entry>

View File

@ -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();

View File

@ -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