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 |
日志输出目标 |