]> granicus.if.org Git - postgresql/commitdiff
This patch against 8.0.0beta1 source adds log_line_prefix options for
authorBruce Momjian <bruce@momjian.us>
Thu, 9 Jun 2005 22:29:52 +0000 (22:29 +0000)
committerBruce Momjian <bruce@momjian.us>
Thu, 9 Jun 2005 22:29:52 +0000 (22:29 +0000)
millisecond timestamps (%m) and remote host (%h). The milliseconds are
useful for QPS measurements.

Ed L.

doc/src/sgml/runtime.sgml
src/backend/utils/error/elog.c
src/backend/utils/misc/postgresql.conf.sample

index e1ffd22c5a8494b4ba34450114e69aaf4cd71a7a..216e8f7e9a16194fac97f1d189c887937d2134ad 100644 (file)
@@ -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>
index 5dd564ef28167147dbb7fd454b38265f4bd3769a..122a0a92a55df74d5ea12d4c7a60ce24e4496991 100644 (file)
@@ -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 */
index d54ae5fcfda19ffc4616e912d53ef99ad982448e..e68f82bb3c8cae6bdd7199b4bdbc726a4ea10b7f 100644 (file)
 #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