Increase PG_SYSLOG_LIMIT (the max line length sent to syslog()) from 128 to
authorTom Lane
Wed, 9 Jul 2008 15:56:49 +0000 (15:56 +0000)
committerTom Lane
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 0d4fd56a2242c5de73199cf86de86a18604ed85b..46b7853e50ade1efb236c18a6a10974dc8d817b9 100644 (file)
@@ -42,7 +42,7 @@
  *
  *
  * IDENTIFICATION
- *   $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.204 2008/07/08 22:17:41 tgl Exp $
+ *   $PostgreSQL: pgsql/src/backend/utils/error/elog.c,v 1.205 2008/07/09 15:56:49 tgl Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -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
  */