PostgreSQL 日志配置详解:log_statement = ddl 与日志存储路径
学习笔记作者:admin日期:2025-07-02点击:177
摘要:本文详细解读了 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.log4. 查看日志文件的命令
使用以下命令查看日志内容:
tail -f /var/lib/postgresql/data/pg_log/postgresql-*.logless /var/lib/postgresql/data/pg_log/postgresql-2025-04-05_*.log      如果权限不足,可以使用 sudo:
sudo tail -f /var/lib/postgresql/data/pg_log/postgresql-*.log5. 总结
| 配置项 | 默认值 | 作用 | 
|---|---|---|
| log_statement | none | 控制记录哪些 SQL 语句 | 
| logging_collector | on | 是否启用日志收集器 | 
| log_directory | pg_log | 日志文件的存储目录 | 
| log_filename | postgresql-%Y-%m-%d_%H%M%S.log | 日志文件名格式 | 
| log_destination | csvlog | 日志输出目标 |