log_line_prefix
英文手册覆盖始于 PostgreSQL 7.4. 来源历史与运行验证各自保留独立版本边界。
当前阅读 PG 18·选择有来源记录的版本
- boot val
- %m [%p]
- category
- Reporting and Logging / What to Log
- context
- sighup
- documented
- true
- enumvals
- 未知
- extra desc
- An empty string means no prefix.
- lang
- en
- max val
- 未知
- metadata version
- 18
- min val
- 未知
- name
- log_line_prefix
- short desc
- Controls information prefixed to each log line.
- source
- pg-settings-source-snapshot
- unit
- 未知
- vartype
- string
版本定义 PG 18
这是一个printf风格的字符串,它在每个日志行的开头输出。%字符开始“转义序列”,它将按下文描述被替换为状态信息。未识别的转义被忽略。其他字符被直接复制到日志行。某些转义只被会话进程识别并且被主服务器进程等后台进程当作空。通过指定一个在%之后和该选项之前的数字可以让状态信息左对齐或右对齐。负值将导致在右边用空格填充状态信息以达到最小宽度,而正值则在左边填充。填充对于日志文件的人类可读性大有帮助。
这个参数只能在postgresql.conf文件中或在服务器命令行上设置。默认值是'%m [%p] ',它记录时间戳和进程ID。
| 转义 | 效果 | 只限会话 |
|---|---|---|
%a | 应用名 | 是 |
%u | 用户名 | 是 |
%d | 数据库名 | 是 |
%r | 远程主机名或 IP 地址,以及远程端口 | 是 |
%h | 远程主机名或 IP 地址 | 是 |
%L | 本地地址(客户端所连接的服务器 IP 地址) | 是 |
%b | 后端类型 | 否 |
%p | 进程 ID | 否 |
%P | 如果该进程是并行查询工作进程,则为并行组领导者的进程 ID | 否 |
%t | 无毫秒的时间戳 | 否 |
%m | 带毫秒的时间戳 | 否 |
%n | 带毫秒精度的 Unix 时间戳 | 否 |
%i | 命令标签:会话当前命令的类型 | 是 |
%e | SQLSTATE 错误代码 | 否 |
%c | 会话 ID:见下文 | 否 |
%l | 对每个会话或进程的日志行号,从 1 开始 | 否 |
%s | 进程开始的时间戳 | 否 |
%v | 虚拟事务 ID(procNumber/localXID);参见第 67.1 节 | 否 |
%x | 事务 ID(如果未分配则为 0);参见第 67.1 节 | 否 |
%q | 不产生输出,但是告诉非会话进程在字符串的这一点停止;会话进程忽略 | 否 |
%Q | 当前查询的查询标识符。查询标识符默认是不计算的,所以该字段将为零,除非compute_query_id参数被激活或者配置了计算查询标识符的第三方模块 | 是 |
%% | 字面字符 % | 否 |
后端类型对应视图 pg_stat_activity中的backend_type列。但是其他类型可能会出现在日志中而不显示在该视图中。
%c转义打印一个准唯一的会话标识符,它由两个 4 字节的十六进制数(不带先导零)组成,以点号分隔。这些数字是进程启动时间和进程 ID,因此%c也可以用来节省空间地输出这两项信息。例如,要从pg_stat_activity生成会话标识符,使用这个查询:
SELECT to_hex(trunc(EXTRACT(EPOCH FROM backend_start))::integer) || '.' ||
to_hex(pid)
FROM pg_stat_activity;
如果你为log_line_prefix设置了非空值,你通常应该让它的最后一个字符为空格,这样可与日志行的其余部分在视觉上区分开。也可以使用标点符号。
Syslog产生自己的时间戳和进程 ID 信息,因此如果你记录到syslog你可能不希望包括那些转义。
在包括仅在会话(后端)上下文中可用的信息(如用户名或者数据库名)时,%q转义很有用。例如:
log_line_prefix = '%m [%p] %q%u@%d/%a '
对于log_statement输出的行,%Q 总是报告零标识符,因为log_statement在标识符能被计算之前生成输出,也包括无法计算标识符的无效语句。
比较版本
来源引用
定义来源
center · PostgreSQL 18 · english-manuals:e12cef740d6d81b35da3ef71d6040ab07f5358dc7b70758cd3e2b2ffbc8f6a0c
正文语言: zh-Hans · 2026-09-11@29c86d9