{"Entry":{"collection":"guc","key":"syslog_split_messages","name":"syslog_split_messages","aliases":[],"metadata":{"baseline":false,"boot_human":"Not specified","boot_val":null,"category":"Reporting and Logging / Where to Log","category_zh":"","changed_in":[],"changes":[{"documentation_changed":false,"fields":{},"from":"9.5","status":"added","to":"9.6"}],"content_hash":"280571489ea7f81ce6355115f29f1c9ecbe34fa63edca2b16881277ca071b3fa","context":"","default_changed_in":[],"default_history":[{"from":"9.6","to":"19","value":"on"}],"derived_content_hash":"ae947a071721876b4bea414b0a061c2d593bd54386a6243863ef1d6e1e8b0de6","documentation_refresh":{"batch":"20261113","original_source_rev":"wiki-repair-20261023:5cb5d68f46666a2e18acf5b14c23f1fd15c31d3702fae80008c1fe8e914951b6","versions":{"14":"14.25","15":"15.20","16":"16.16","17":"17.12","18":"18.7","19":"19rc2"}},"editorial":{"advice":{"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."},"mechanism":["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."],"pitfalls":["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."],"references":[{"title":"PostgreSQL 19 Beta 4: syslog_split_messages","url":"https://www.postgresql.org/docs/19/runtime-config-logging.html#GUC-SYSLOG-SPLIT-MESSAGES"},{"title":"PostgreSQL 19 release notes","url":"https://www.postgresql.org/docs/19/release-19.html"}],"related":["log_destination","syslog_facility","syslog_ident","syslog_sequence_numbers","logging_collector"],"summary":"syslog_split_messages is the PostgreSQL setting that splits messages sent to syslog by lines and to fit into 1024 bytes."},"enumvals":[],"first_version":"9.6","group":"Reporting and Logging","group_slug":"logging","imported_at":"2026-09-30T00:40:57.829844+08:00","intro_commit":{"authored_at":"2016-03-15T22:48:53-04:00","discussion":[],"hash":"fc201dfd95059fd2fef9862a2fd09cfab42c9bf7","subject":"Add syslog_split_messages parameter","url":"https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=fc201dfd95059fd2fef9862a2fd09cfab42c9bf7"},"key":"syslog_split_messages","last_version":"20","max_val":"","min_val":"","name":"syslog_split_messages","position":405,"present_in":["9.6","10","11","12","13","14","15","16","17","18","19","20"],"repair_provenance":{"original_source_revision":"english-manuals:75fb4fff4cabaa9ccdd2349593085fff72d76ac03866b44632474002df4b3769","receipt_sha256":"8ce11e40ad018b2a6f46cd0ceabfb8ef1b9143f2726c9542b5ec63fb4424c0fc","repair":"wiki-repair-20261023"},"short_desc":"When logging to syslog is enabled, this parameter determines how messages are delivered to syslog.","short_desc_zh":"","source_rev":"wiki-repair-20261023:5cb5d68f46666a2e18acf5b14c23f1fd15c31d3702fae80008c1fe8e914951b6","unit":"","vartype":"bool"}},"Definition":{"Collection":"guc","Key":"syslog_split_messages","SourceDatabase":"center","Version":"18","SourceTable":"guc","SourceKey":"syslog_split_messages","SourceRevision":"wiki-repair-20261023:5cb5d68f46666a2e18acf5b14c23f1fd15c31d3702fae80008c1fe8e914951b6","Facts":{"boot_val":"on","category":"Reporting and Logging / Where to Log","context":"sighup","description":"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.","description_zh":"当启用把日志记录到 syslog 时，这个参数决定消息如何送达 syslog。当设置为 on（默认）时，消息会被分成行，并且长的行也会被划分以便能够放到 1024 字节中，这是传统 syslog 实现的一种典型尺寸限制。当设置为 off 时，PostgreSQL 服务器日志消息会被原样送达 syslog 服务，而处理可能的大体量消息的任务由 syslog 服务负责。 如果 syslog 最终被记录到一个文本文件中，那么两种设置的效果是一样的，但最好设置为 on，因为大部分 syslog 实现要么不能处理大型消息，要么需要做特殊的配置以处理大型消息。但是如果 syslog 最终写入到某种其他媒介，让消息保持逻辑上的完整性可能是必要的，也可能更有用。 这个参数只能在 postgresql.conf 文件中或通过服务器命令行进行设置。","description_zh_html":"\u003cp\u003e\n        当启用把日志记录到 \u003cspan class=\"application\"\u003esyslog\u003c/span\u003e 时，这个参数决定消息如何送达 syslog。当设置为 on（默认）时，消息会被分成行，并且长的行也会被划分以便能够放到 1024 字节中，这是传统 syslog 实现的一种典型尺寸限制。当设置为 off 时，PostgreSQL 服务器日志消息会被原样送达 syslog 服务，而处理可能的大体量消息的任务由 syslog 服务负责。\n       \u003c/p\u003e\u003cp\u003e\n        如果 syslog 最终被记录到一个文本文件中，那么两种设置的效果是一样的，但最好设置为 on，因为大部分 syslog 实现要么不能处理大型消息，要么需要做特殊的配置以处理大型消息。但是如果 syslog 最终写入到某种其他媒介，让消息保持逻辑上的完整性可能是必要的，也可能更有用。\n       \u003c/p\u003e\u003cp\u003e\n        这个参数只能在 \u003ccode class=\"filename\"\u003epostgresql.conf\u003c/code\u003e 文件中或通过服务器命令行进行设置。\n       \u003c/p\u003e","doc":{"anchor":"GUC-SYSLOG-SPLIT-MESSAGES","file":"runtime-config-logging.html","lang":"en","sha256":"278d913b9c0f735c5cd7b35fd7205826bbd9c449805370d2dbe54105c0ed1d88","slug":"18"},"doc_html":"\u003cp\u003e\n        When logging to \u003cspan class=\"application\"\u003esyslog\u003c/span\u003e is enabled, this parameter\n        determines how messages are delivered to syslog.  When on (the\n        default), messages are split by lines, and long lines are split so\n        that they will fit into 1024 bytes, which is a typical size limit for\n        traditional syslog implementations.  When off, PostgreSQL server log\n        messages are delivered to the syslog service as is, and it is up to\n        the syslog service to cope with the potentially bulky messages.\n       \u003c/p\u003e\u003cp\u003e\n        If syslog is ultimately logging to a text file, then the effect will\n        be the same either way, and it is best to leave the setting on, since\n        most syslog implementations either cannot handle large messages or\n        would need to be specially configured to handle them.  But if syslog\n        is ultimately writing into some other medium, it might be necessary or\n        more useful to keep messages logically together.\n       \u003c/p\u003e\u003cp\u003e\n        This parameter can only be set in the \u003ccode class=\"filename\"\u003epostgresql.conf\u003c/code\u003e\n        file or on the server command line.\n       \u003c/p\u003e","doc_same_as":"","documentation_revision":{"inputs":[{"file":"runtime-config-logging.html","kind":"same-version-reviewed-manual","locale":"en","sha256":"278d913b9c0f735c5cd7b35fd7205826bbd9c449805370d2dbe54105c0ed1d88","version":"18.7"},{"file":"runtime-config-logging.html","kind":"same-version-reviewed-manual","locale":"zh-Hans","sha256":"68c010254e1859ec0b76f06a563babd51a6c38997f1242e35e4c6b649724b1cb","version":"18.7"}],"release":"18.7","runtime_remeasured":false,"source_revision":"pgdoc:b9f0e7232f60f380d642ac9b99226606c254b552"},"documented":true,"enumvals":null,"extra_desc":null,"lang":"en","max_val":null,"metadata_version":"18","min_val":null,"name":"syslog_split_messages","short_desc":"Split messages sent to syslog by lines and to fit into 1024 bytes.","source":"pg-settings-source-snapshot","translation_provenance":{"inputs":[{"kind":"current-pgdoc-translation","path":"/Users/vonng/pgsty/pgdoc/zh/18/html/runtime-config-logging.html","sha256":"a322f5293f10e348b5fc5dca98fdb6af52462723a215b8701c3b9d933e2933b4"}],"kind":"same-version-pgdoc","locale":"zh-Hans","source_revision":"b1b500221dbe5437cfca004d6b04d3f6e422765d","version":"18"},"unit":null,"vartype":"bool","zh_from":"same-version-manual"},"ManualEvidence":{"doc":{"anchor":"GUC-SYSLOG-SPLIT-MESSAGES","file":"runtime-config-logging.html","lang":"en","sha256":"278d913b9c0f735c5cd7b35fd7205826bbd9c449805370d2dbe54105c0ed1d88","slug":"18"}},"MeasuredEvidence":{"metadata_version":"18"}},"Text":{"Collection":"guc","Key":"syslog_split_messages","SourceDatabase":"center","Version":"18","Locale":"en","Title":"syslog_split_messages","Summary":"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.","BodyHTML":"\u003cp\u003e\n        When logging to \u003cspan\u003esyslog\u003c/span\u003e is enabled, this parameter\n        determines how messages are delivered to syslog.  When on (the\n        default), messages are split by lines, and long lines are split so\n        that they will fit into 1024 bytes, which is a typical size limit for\n        traditional syslog implementations.  When off, PostgreSQL server log\n        messages are delivered to the syslog service as is, and it is up to\n        the syslog service to cope with the potentially bulky messages.\n       \u003c/p\u003e\u003cp\u003e\n        If syslog is ultimately logging to a text file, then the effect will\n        be the same either way, and it is best to leave the setting on, since\n        most syslog implementations either cannot handle large messages or\n        would need to be specially configured to handle them.  But if syslog\n        is ultimately writing into some other medium, it might be necessary or\n        more useful to keep messages logically together.\n       \u003c/p\u003e\u003cp\u003e\n        This parameter can only be set in the \u003ccode\u003epostgresql.conf\u003c/code\u003e\n        file or on the server command line.\n       \u003c/p\u003e","SourceRevision":"wiki-repair-20261023:5cb5d68f46666a2e18acf5b14c23f1fd15c31d3702fae80008c1fe8e914951b6","ContentHash":"a2dedac356370d37f57d1f271285a97a0e9399639dd829ded45dd40a05dda745","Payload":{"description":"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."}},"RequestedLocale":"en","Fallback":false,"Versions":["10","11","12","13","14","15","16","17","18","19","20","9.6"],"Locales":["en","zh-Hans"],"Signatures":null,"Spellings":null,"SQLState":null,"Evidence":null}
