Add syslog_sequence_numbers parameter
Reviewed-by: Andreas Karlsson <andreas@proxel.se>
This commit is contained in:
parent
47211af17a
commit
f4c454e9ba
|
@ -4305,6 +4305,34 @@ local0.* /var/log/postgresql
|
||||||
</listitem>
|
</listitem>
|
||||||
</varlistentry>
|
</varlistentry>
|
||||||
|
|
||||||
|
<varlistentry id="guc-syslog-sequence-numbers" xreflabel="syslog_sequence_numbers">
|
||||||
|
<term><varname>syslog_sequence_numbers</varname> (<type>boolean</type>)
|
||||||
|
<indexterm>
|
||||||
|
<primary><varname>syslog_sequence_numbers</> configuration parameter</primary>
|
||||||
|
</indexterm>
|
||||||
|
</term>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para>
|
||||||
|
When logging to <application>syslog</application> and this is on (the
|
||||||
|
default), then each message will be prefixed by an increasing
|
||||||
|
sequence number (such as <literal>[2]</literal>). This circumvents
|
||||||
|
the <quote>--- last message repeated N times ---</quote> suppression
|
||||||
|
that many syslog implementations perform by default. In more modern
|
||||||
|
syslog implementations, repeat message suppression can be configured
|
||||||
|
(for example, <literal>$RepeatedMsgReduction</literal>
|
||||||
|
in <productname>rsyslog</productname>), so this might not be
|
||||||
|
necessary. Also, you could turn this off if you actually want to
|
||||||
|
suppress repeated messages.
|
||||||
|
</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">
|
<varlistentry id="guc-event-source" xreflabel="event_source">
|
||||||
<term><varname>event_source</varname> (<type>string</type>)
|
<term><varname>event_source</varname> (<type>string</type>)
|
||||||
<indexterm>
|
<indexterm>
|
||||||
|
|
|
@ -106,6 +106,7 @@ int Log_error_verbosity = PGERROR_VERBOSE;
|
||||||
char *Log_line_prefix = NULL; /* format for extra log line info */
|
char *Log_line_prefix = NULL; /* format for extra log line info */
|
||||||
int Log_destination = LOG_DESTINATION_STDERR;
|
int Log_destination = LOG_DESTINATION_STDERR;
|
||||||
char *Log_destination_string = NULL;
|
char *Log_destination_string = NULL;
|
||||||
|
bool syslog_sequence_numbers = true;
|
||||||
|
|
||||||
#ifdef HAVE_SYSLOG
|
#ifdef HAVE_SYSLOG
|
||||||
|
|
||||||
|
@ -2018,7 +2019,11 @@ write_syslog(int level, const char *line)
|
||||||
|
|
||||||
chunk_nr++;
|
chunk_nr++;
|
||||||
|
|
||||||
syslog(level, "[%lu-%d] %s", seq, chunk_nr, buf);
|
if (syslog_sequence_numbers)
|
||||||
|
syslog(level, "[%lu-%d] %s", seq, chunk_nr, buf);
|
||||||
|
else
|
||||||
|
syslog(level, "[%d] %s", chunk_nr, buf);
|
||||||
|
|
||||||
line += buflen;
|
line += buflen;
|
||||||
len -= buflen;
|
len -= buflen;
|
||||||
}
|
}
|
||||||
|
@ -2026,7 +2031,10 @@ write_syslog(int level, const char *line)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* message short enough */
|
/* message short enough */
|
||||||
syslog(level, "[%lu] %s", seq, line);
|
if (syslog_sequence_numbers)
|
||||||
|
syslog(level, "[%lu] %s", seq, line);
|
||||||
|
else
|
||||||
|
syslog(level, "%s", line);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif /* HAVE_SYSLOG */
|
#endif /* HAVE_SYSLOG */
|
||||||
|
|
|
@ -1632,6 +1632,16 @@ static struct config_bool ConfigureNamesBool[] =
|
||||||
NULL, NULL, NULL
|
NULL, NULL, NULL
|
||||||
},
|
},
|
||||||
|
|
||||||
|
{
|
||||||
|
{"syslog_sequence_numbers", PGC_SIGHUP, LOGGING_WHERE,
|
||||||
|
gettext_noop("Add sequence number to syslog messags to avoid duplicate suppression."),
|
||||||
|
NULL
|
||||||
|
},
|
||||||
|
&syslog_sequence_numbers,
|
||||||
|
true,
|
||||||
|
NULL, NULL, NULL
|
||||||
|
},
|
||||||
|
|
||||||
/* End-of-list marker */
|
/* End-of-list marker */
|
||||||
{
|
{
|
||||||
{NULL, 0, 0, NULL, NULL}, NULL, false, NULL, NULL, NULL
|
{NULL, 0, 0, NULL, NULL}, NULL, false, NULL, NULL, NULL
|
||||||
|
|
|
@ -358,6 +358,7 @@
|
||||||
# These are relevant when logging to syslog:
|
# These are relevant when logging to syslog:
|
||||||
#syslog_facility = 'LOCAL0'
|
#syslog_facility = 'LOCAL0'
|
||||||
#syslog_ident = 'postgres'
|
#syslog_ident = 'postgres'
|
||||||
|
#syslog_sequence_numbers = on
|
||||||
|
|
||||||
# This is only relevant when logging to eventlog (win32):
|
# This is only relevant when logging to eventlog (win32):
|
||||||
#event_source = 'PostgreSQL'
|
#event_source = 'PostgreSQL'
|
||||||
|
|
|
@ -397,6 +397,7 @@ extern int Log_error_verbosity;
|
||||||
extern char *Log_line_prefix;
|
extern char *Log_line_prefix;
|
||||||
extern int Log_destination;
|
extern int Log_destination;
|
||||||
extern char *Log_destination_string;
|
extern char *Log_destination_string;
|
||||||
|
extern bool syslog_sequence_numbers;
|
||||||
|
|
||||||
/* Log destination bitmap */
|
/* Log destination bitmap */
|
||||||
#define LOG_DESTINATION_STDERR 1
|
#define LOG_DESTINATION_STDERR 1
|
||||||
|
|
Loading…
Reference in New Issue