This allows all complexity to be managed within the script, which
can be written in a popular scripting language such as
- Any messages written to stderr> from the script will appear
- in the database server log, allowing complex configurations to be
- diagnosed easily if they fail.
+
+
+ When using an archive_command script, it's desirable
+ to enable .
+ Any messages written to stderr> from the script will then
+ appear in the database server log, allowing complex configurations to
+ be diagnosed easily if they fail.
+
+
value> (
CSV>) format, which is convenient for
loading logs into programs.
See for details.
- <varname>logging_collector> must be enabled to generate
+ <xref linkend="guc-logging-collector"> must be enabled to generate
CSV-format log output.
- This parameter captures plain and CSV-format log messages
- sent to
stderr> and redirects them into log files.
+ This parameter enables the logging collector>, which
+ is a background process that captures log messages
+ sent to stderr> and redirects them into log files.
This approach is often more useful than
logging to
syslog>, since some types of messages
- might not appear in
syslog> output (a common example
- is dynamic-linker failure messages).
+ might not appear in
syslog> output. (One common
+ example is dynamic-linker failure messages; another is error messages
+ produced by scripts such as archive_command>.)
This parameter can only be set at server start.
+
+ It is possible to log to stderr> without using the
+ logging collector; the log messages will just go to wherever the
+ server's stderr> is directed. However, that method is
+ only suitable for low log volumes, since it provides no convenient
+ way to rotate log files. Also, on some platforms not using the
+ logging collector can result in lost or garbled log output, because
+ multiple processes writing concurrently to the same log file can
+ overwrite each other's output.
+
+
+
The logging collector is designed to never lose messages. This means
that in case of extremely high load, server processes could be
- blocked due to trying to send additional log messages when the
+ blocked while trying to send additional log messages when the
collector has fallen behind. In contrast,
syslog>
- prefers to drop messages if it cannot write them, which means it's
- less reliable in those cases but it will not block the rest of the
- system.
+ prefers to drop messages if it cannot write them, which means it
+ may fail to log some messages in such cases but it will not block
+ the rest of the system.