Increase PG_SYSLOG_LIMIT (the max line length sent to syslog()) from 128 to
authorTom Lane <tgl@sss.pgh.pa.us>
Wed, 9 Jul 2008 15:56:49 +0000 (15:56 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Wed, 9 Jul 2008 15:56:49 +0000 (15:56 +0000)
1024 to improve performance when sending large elog messages.  Also add a
comment about why we use that number.

Since this represents an externally visible behavior change, and might
possibly result in portability issues, it seems best not to back-patch it.

src/backend/utils/error/elog.c

index 0dd2a525258929d07c3850bf80350cf6e1199ded..77d6652076a942b2444b1e5d6bbe0cab749067d3 100644 (file)
@@ -85,6 +85,17 @@ char    *Log_line_prefix = NULL;             /* format for extra log line info */
 int                    Log_destination = LOG_DESTINATION_STDERR;
 
 #ifdef HAVE_SYSLOG
+
+/*
+ * Max string length to send to syslog().  Note that this doesn't count the
+ * sequence-number prefix we add, and of course it doesn't count the prefix
+ * added by syslog itself.  On many implementations it seems that the hard
+ * limit is approximately 2K bytes including both those prefixes.
+ */
+#ifndef PG_SYSLOG_LIMIT
+#define PG_SYSLOG_LIMIT 1024
+#endif
+
 static bool openlog_done = false;
 static char *syslog_ident = NULL;
 static int     syslog_facility = LOG_LOCAL0;
@@ -1257,7 +1268,6 @@ DebugFileOpen(void)
 }
 
 
-
 #ifdef HAVE_SYSLOG
 
 /*
@@ -1293,10 +1303,6 @@ set_syslog_parameters(const char *ident, int facility)
 }
 
 
-#ifndef PG_SYSLOG_LIMIT
-#define PG_SYSLOG_LIMIT 128
-#endif
-
 /*
  * Write a message line to syslog
  */