]> granicus.if.org Git - postgresql/commitdiff
Reduce PG_SYSLOG_LIMIT to 900 bytes.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 6 Aug 2011 01:02:31 +0000 (21:02 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 6 Aug 2011 01:02:52 +0000 (21:02 -0400)
The previous limit of 1024 was set on the assumption that all modern syslog
implementations have line length limits of 2KB or so.  However, this is
false, as at least Solaris and sysklogd truncate at only 1KB.  900 seems
to leave enough room for the max likely length of the tacked-on prefixes,
so let's go with that.

As with the previous change, it doesn't seem wise to back-patch this into
already-released branches; but it should be OK to sneak it into 9.1.

Noah Misch

src/backend/utils/error/elog.c

index 7c7927509b54c870ec99b60d20c51a8b57f5088a..6e8e5aef4e0fe2f2771e38396b1c70827056e699 100644 (file)
@@ -105,11 +105,12 @@ int                       Log_destination = LOG_DESTINATION_STDERR;
 /*
  * 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.
+ * added by syslog itself.  Solaris and sysklogd truncate the final message
+ * at 1024 bytes, so this value leaves 124 bytes for those prefixes.  (Most
+ * other syslog implementations seem to have limits of 2KB or so.)
  */
 #ifndef PG_SYSLOG_LIMIT
-#define PG_SYSLOG_LIMIT 1024
+#define PG_SYSLOG_LIMIT 900
 #endif
 
 static bool openlog_done = false;