select open change scope Open full search

PG.CENTER connects PostgreSQL documentation, reference, and ecosystem knowledge. Maintained by Pigsty.

CONFIGURATION / REPORTING AND LOGGING

syslog_split_messages

Read PG 18 manual ↗

When logging to syslog is enabled, this parameter determines how messages are delivered to syslog.

Type
bool
Context
sighup
Measured default
on
Unit
Metadata snapshot
18

Definition PG 18 manual

When logging to 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.

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.

This parameter can only be set in the postgresql.conf file or on the server command line.

Measured default history
Version intervalDefault
9.6 – 19on
Analysis & operational context

Authored guidance from the GUC source snapshot; the version-specific manual above is the definition reference. View source ↗

How it works

syslog_split_messages splits messages sent to syslog by lines and to fit into 1024 bytes. When enabled, PostgreSQL splits at line boundaries and the traditional 1024-byte limit; disabling it relies on the receiver to handle multiline or long payloads.

syslog_split_messages is a SIGHUP-context setting: a configuration reload activates the new server value without a restart; subsequent operations that consult it use the refreshed value.

It is active only when syslog appears in log_destination, after which the facility, ident, sequence, splitting, host daemon, and remote receiver jointly define record delivery.

Operational considerations

Editing syslog_split_messages without reloading configuration and verifying the effective value and subsequent behavior.

Changing PostgreSQL framing or identifiers without testing the host daemon and remote receiver as one pipeline.

Assuming syslog preserves unlimited message size, multiline boundaries, ordering, or repeated records by default.

Changing syslog_split_messages globally without a rollback plan and a client or operational compatibility test.

Workload guidance

OLAP: Test syslog_split_messages under bursty analytical messages and multiline plans so splitting or receiver limits do not destroy record boundaries.

OLTP: Set syslog_split_messages to match the receiving syslog daemon's routing, framing, deduplication, and message-size contract; validate failover and backpressure with the real collector.

SMALL: Prefer the host's established syslog convention for syslog_split_messages; avoid parallel local-file retention unless it has an explicit purpose and size limit.

Version history 1
  1. PG 9.5 → 9.6added

Related entries

Further reading

Definition snapshot: english-manuals:7c859357b73dfdffbc9275566cb… · English manual source