PostgreSQL 日志配置详解:log_statement = ddl 与日志存储路径

学习笔记作者:admin日期:2025-07-02点击:16

摘要:本文详细解读了 PostgreSQL 中 log_statement = ddl 的作用,说明其仅记录 DDL 语句,并介绍了日志的存储位置和相关配置项。通过配置 logging_collector、log_directory 和 log_filename 等参数,可以控制日志文件的存储路径和格式。

1. log_statement = ddl 的作用

      在 PostgreSQL 配置文件中设置 log_statement = ddl 表示只记录数据定义语言(DDL)语句,例如 CREATE、ALTER、DROP 等操作。

log_statement = ddl

可选值说明

说明
none 不记录任何 SQL 语句
ddl 只记录 DDL 语句
mod 记录 DDL 和 DML 语句(如 INSERT、UPDATE、DELETE)
all 记录所有 SQL 语句

2. 日志存储路径解析

      日志的实际存储路径由以下配置项决定:

2.1 logging_collector

logging_collector = on

      启用日志收集器后,日志将写入到指定的日志文件中。

2.2 log_directory

log_directory = 'pg_log'

      定义日志文件的存放目录,通常位于 PostgreSQL 数据目录下。

2.3 log_filename

log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

      定义日志文件的命名格式,例如:postgresql-2025-04-05_143000.log

2.4 log_destination

log_destination = 'csvlog'

      指定日志输出的目标类型,csvlog 表示以 CSV 格式写入文件。

3. 日志文件的实际存储路径

      日志文件的完整路径为:

${data_directory}/${log_directory}/${log_filename}

      假设你的数据目录是 /var/lib/postgresql/data,那么日志文件路径可能是:

/var/lib/postgresql/data/pg_log/postgresql-2025-04-05_143000.log

4. 查看日志文件的命令

      使用以下命令查看日志内容:

tail -f /var/lib/postgresql/data/pg_log/postgresql-*.log
less /var/lib/postgresql/data/pg_log/postgresql-2025-04-05_*.log

      如果权限不足,可以使用 sudo

sudo tail -f /var/lib/postgresql/data/pg_log/postgresql-*.log

5. 总结

配置项 默认值 作用
log_statement none 控制记录哪些 SQL 语句
logging_collector on 是否启用日志收集器
log_directory pg_log 日志文件的存储目录
log_filename postgresql-%Y-%m-%d_%H%M%S.log 日志文件名格式
log_destination csvlog 日志输出目标

上一篇      下一篇