Parameter · Reporting and Logging / Where to Log
syslog_split_messages
Split messages sent to syslog by lines and to fit into 1024 bytes.
- Default:
on - Type: bool
- Applies: Reload
In plain words
Syslog was designed for short single-line messages. With this on, PostgreSQL breaks long messages (and messages with several lines, like an ERROR plus its STATEMENT) into numbered pieces, so nothing is cut off by syslog.
For DBAs and operators
When on, a message longer than about 900 bytes, or containing newlines, is sent as several syslog records, each tagged [seq-chunk] (chunk counter from 1). Off sends the whole message as one record, which modern daemons (rsyslog, journald) handle fine up to their own limit (often 8KB), but the embedded newlines then end up inside one record. Captured with on:
Leave it on unless your log pipeline reassembles multi-line records itself. Note how huge parameter values or query texts get split across many lines; that is a good reason to cap them with log_parameter_max_length.
How to change it
Change in postgresql.conf or ALTER SYSTEM, then run SELECT pg_reload_conf().
See it in context
Related parameters
syslog_sequence_numbers syslog_ident log_destination log_parameter_max_length