mirror of
https://github.com/postgres/postgres.git
synced 2025-04-21 12:05:57 +03:00
Add syslog_split_messages parameter
Reviewed-by: Andreas Karlsson <andreas@proxel.se>
This commit is contained in:
parent
f4c454e9ba
commit
fc201dfd95
@ -4333,6 +4333,39 @@ local0.* /var/log/postgresql
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="guc-syslog-split-messages" xreflabel="syslog_split_messages">
|
||||
<term><varname>syslog_split_messages</varname> (<type>boolean</type>)
|
||||
<indexterm>
|
||||
<primary><varname>syslog_split_messages</> configuration parameter</primary>
|
||||
</indexterm>
|
||||
</term>
|
||||
<listitem>
|
||||
<para>
|
||||
When logging to <application>syslog</> is enabled, this parameter
|
||||
determines how messages are delivered to syslog. When on (the
|
||||
default), messages are split by lines, and long lines are split so
|
||||
that they will fit into 1024 bytes, which is a typical size limit for
|
||||
traditional syslog implementations. When off, PostgreSQL server log
|
||||
messages are delivered to the syslog service as is, and it is up to
|
||||
the syslog service to cope with the potentially bulky messages.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
If syslog is ultimately logging to a text file, then the effect will
|
||||
be the same either way, and it is best to leave the setting on, since
|
||||
most syslog implementations either cannot handle large messages or
|
||||
would need to be specially configured to handle them. But if syslog
|
||||
is ultimately writing into some other medium, it might be necessary or
|
||||
more useful to keep messages logically together.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
This parameter can only be set in the <filename>postgresql.conf</>
|
||||
file or on the server command line.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry id="guc-event-source" xreflabel="event_source">
|
||||
<term><varname>event_source</varname> (<type>string</type>)
|
||||
<indexterm>
|
||||
|
@ -107,6 +107,7 @@ char *Log_line_prefix = NULL; /* format for extra log line info */
|
||||
int Log_destination = LOG_DESTINATION_STDERR;
|
||||
char *Log_destination_string = NULL;
|
||||
bool syslog_sequence_numbers = true;
|
||||
bool syslog_split_messages = true;
|
||||
|
||||
#ifdef HAVE_SYSLOG
|
||||
|
||||
@ -1966,7 +1967,7 @@ write_syslog(int level, const char *line)
|
||||
*/
|
||||
len = strlen(line);
|
||||
nlpos = strchr(line, '\n');
|
||||
if (len > PG_SYSLOG_LIMIT || nlpos != NULL)
|
||||
if (syslog_split_messages && (len > PG_SYSLOG_LIMIT || nlpos != NULL))
|
||||
{
|
||||
int chunk_nr = 0;
|
||||
|
||||
|
@ -1642,6 +1642,16 @@ static struct config_bool ConfigureNamesBool[] =
|
||||
NULL, NULL, NULL
|
||||
},
|
||||
|
||||
{
|
||||
{"syslog_split_messages", PGC_SIGHUP, LOGGING_WHERE,
|
||||
gettext_noop("Split messages sent to syslog by lines and to fit into 1024 bytes."),
|
||||
NULL
|
||||
},
|
||||
&syslog_split_messages,
|
||||
true,
|
||||
NULL, NULL, NULL
|
||||
},
|
||||
|
||||
/* End-of-list marker */
|
||||
{
|
||||
{NULL, 0, 0, NULL, NULL}, NULL, false, NULL, NULL, NULL
|
||||
|
@ -359,6 +359,7 @@
|
||||
#syslog_facility = 'LOCAL0'
|
||||
#syslog_ident = 'postgres'
|
||||
#syslog_sequence_numbers = on
|
||||
#syslog_split_messages = on
|
||||
|
||||
# This is only relevant when logging to eventlog (win32):
|
||||
#event_source = 'PostgreSQL'
|
||||
|
@ -398,6 +398,7 @@ extern char *Log_line_prefix;
|
||||
extern int Log_destination;
|
||||
extern char *Log_destination_string;
|
||||
extern bool syslog_sequence_numbers;
|
||||
extern bool syslog_split_messages;
|
||||
|
||||
/* Log destination bitmap */
|
||||
#define LOG_DESTINATION_STDERR 1
|
||||
|
Loading…
x
Reference in New Issue
Block a user