diff --git a/doc/src/sgml/runtime.sgml b/doc/src/sgml/runtime.sgml index e1ffd22c5a8494b4ba34450114e69aaf4cd71a7a..216e8f7e9a16194fac97f1d189c887937d2134ad 100644 --- a/doc/src/sgml/runtime.sgml +++ b/doc/src/sgml/runtime.sgml @@ -1,5 +1,5 @@ <!-- -$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.322 2005/06/04 20:42:41 momjian Exp $ +$PostgreSQL: pgsql/doc/src/sgml/runtime.sgml,v 1.323 2005/06/09 22:29:52 momjian Exp $ --> <chapter Id="runtime"> @@ -2829,6 +2829,11 @@ archive_command = 'copy "%p" /mnt/server/archivedir/"%f"' # Windows <entry>Remote host name or IP address, and remote port</entry> <entry>yes</entry> </row> + <row> + <entry><literal>%h</literal></entry> + <entry>Remote Hostname or IP address</entry> + <entry>yes</entry> + </row> <row> <entry><literal>%p</literal></entry> <entry>Process ID</entry> @@ -2839,6 +2844,11 @@ archive_command = 'copy "%p" /mnt/server/archivedir/"%f"' # Windows <entry>Time stamp</entry> <entry>no</entry> </row> + <row> + <entry><literal>%m</literal></entry> + <entry>Timestamp with milliseconds</entry> + <entry>no</entry> + </row> <row> <entry><literal>%i</literal></entry> <entry>Command tag: This is the command that generated the log line.</entry> diff --git a/src/backend/utils/error/elog.c b/src/backend/utils/error/elog.c index 5dd564ef28167147dbb7fd454b38265f4bd3769a..122a0a92a55df74d5ea12d4c7a60ce24e4496991 100644 --- a/src/backend/utils/error/elog.c +++ b/src/backend/utils/error/elog.c @@ -42,7 +42,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.158 2005/03/12 01:54:44 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.159 2005/06/09 22:29:52 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -1375,6 +1375,33 @@ log_line_prefix(StringInfo buf) case 'l': appendStringInfo(buf, "%ld", log_line_number); break; + case 'm': + { + time_t stamp_time; + char strfbuf[128], msbuf[5]; + struct timeval tv; + + gettimeofday(&tv, NULL); + stamp_time = tv.tv_sec; + + strftime(strfbuf, sizeof(strfbuf), + /* leave room for milliseconds... */ + /* Win32 timezone names are too long so don't print them. */ +#ifndef WIN32 + "%Y-%m-%d %H:%M:%S %Z", +#else + "%Y-%m-%d %H:%M:%S ", +#endif + localtime(&stamp_time)); + + /* 'paste' milliseconds into place... */ + sprintf(msbuf, ".%03d", + (int)(tv.tv_usec/1000)); + strncpy(strfbuf+19, msbuf, 4); + + appendStringInfoString(buf, strfbuf); + } + break; case 't': { /* @@ -1426,6 +1453,10 @@ log_line_prefix(StringInfo buf) MyProcPort->remote_port); } break; + case 'h': + if (MyProcPort) + appendStringInfo(buf, "%s", MyProcPort->remote_host); + break; case 'q': /* in postmaster and friends, stop if %q is seen */ /* in a backend, just ignore */ diff --git a/src/backend/utils/misc/postgresql.conf.sample b/src/backend/utils/misc/postgresql.conf.sample index d54ae5fcfda19ffc4616e912d53ef99ad982448e..e68f82bb3c8cae6bdd7199b4bdbc726a4ea10b7f 100644 --- a/src/backend/utils/misc/postgresql.conf.sample +++ b/src/backend/utils/misc/postgresql.conf.sample @@ -241,8 +241,9 @@ #log_duration = false #log_line_prefix = '' # e.g. '<%u%%%d> ' # %u=user name %d=database name - # %r=remote host and port + # %r=remote host and port %h=remote host # %p=PID %t=timestamp %i=command tag + # %m=timestamp with milliseconds # %c=session id %l=session line number # %s=session start timestamp %x=transaction id # %q=stop here in non-session processes