Commit 111e29ef authored by Tom Lane's avatar Tom Lane

Adjust comment about %t and %s to cover %m as well. Some trivial

code beautification too.
parent b4cbd60f
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.160 2005/06/10 16:23:10 neilc Exp $ * $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.161 2005/06/10 20:48:54 tgl Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -1333,10 +1333,7 @@ log_line_prefix(StringInfo buf) ...@@ -1333,10 +1333,7 @@ log_line_prefix(StringInfo buf)
/* go to char after '%' */ /* go to char after '%' */
i++; i++;
if (i >= format_len) if (i >= format_len)
{ break; /* format error - ignore it */
/* format error - ignore it */
break;
}
/* process the option */ /* process the option */
switch (Log_line_prefix[i]) switch (Log_line_prefix[i])
...@@ -1377,8 +1374,18 @@ log_line_prefix(StringInfo buf) ...@@ -1377,8 +1374,18 @@ log_line_prefix(StringInfo buf)
break; break;
case 'm': case 'm':
{ {
/*
* Note: for %m, %t, and %s we deliberately use the
* C library's strftime/localtime, and not the
* equivalent functions from src/timezone. This
* ensures that all backends will report log entries
* in the same timezone, namely whatever C-library
* setting they inherit from the postmaster. If we
* used src/timezone then local settings of the
* TimeZone GUC variable would confuse the log.
*/
time_t stamp_time; time_t stamp_time;
char strfbuf[128], msbuf[5]; char strfbuf[128], msbuf[8];
struct timeval tv; struct timeval tv;
gettimeofday(&tv, NULL); gettimeofday(&tv, NULL);
...@@ -1388,15 +1395,14 @@ log_line_prefix(StringInfo buf) ...@@ -1388,15 +1395,14 @@ log_line_prefix(StringInfo buf)
/* leave room for milliseconds... */ /* leave room for milliseconds... */
/* Win32 timezone names are too long so don't print them. */ /* Win32 timezone names are too long so don't print them. */
#ifndef WIN32 #ifndef WIN32
"%Y-%m-%d %H:%M:%S %Z", "%Y-%m-%d %H:%M:%S %Z",
#else #else
"%Y-%m-%d %H:%M:%S ", "%Y-%m-%d %H:%M:%S ",
#endif #endif
localtime(&stamp_time)); localtime(&stamp_time));
/* 'paste' milliseconds into place... */ /* 'paste' milliseconds into place... */
sprintf(msbuf, ".%03d", sprintf(msbuf, ".%03d", (int) (tv.tv_usec/1000));
(int)(tv.tv_usec/1000));
strncpy(strfbuf+19, msbuf, 4); strncpy(strfbuf+19, msbuf, 4);
appendStringInfoString(buf, strfbuf); appendStringInfoString(buf, strfbuf);
...@@ -1404,16 +1410,6 @@ log_line_prefix(StringInfo buf) ...@@ -1404,16 +1410,6 @@ log_line_prefix(StringInfo buf)
break; break;
case 't': case 't':
{ {
/*
* Note: for %t and %s we deliberately use the C
* library's strftime/localtime, and not the
* equivalent functions from src/timezone. This
* ensures that all backends will report log entries
* in the same timezone, namely whatever C-library
* setting they inherit from the postmaster. If we
* used src/timezone then local settings of the
* TimeZone GUC variable would confuse the log.
*/
time_t stamp_time = time(NULL); time_t stamp_time = time(NULL);
char strfbuf[128]; char strfbuf[128];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment