在 CentOS 上开启 PostgreSQL 日志,通常通过修改 PostgreSQL 的配置文件 postgresql.conf 来实现。以下以 CentOS 7/8 + PostgreSQL 10/11/12/13/14/15 为例说明。
一般路径如下(版本号不同路径略有差异):
# PostgreSQL 12 示例
/var/lib/pgsql/12/data/postgresql.conf
也可用 SQL 查看:
SHOW config_file;
编辑配置文件:
sudo vi /var/lib/pgsql/12/data/postgresql.conf
logging_collector = on
log_directory = 'log'
log_filename = 'postgresql-%Y-%m-%d.log'
log_rotation_age = 1d
log_rotation_size = 100MB
log_min_messages = warning
log_min_error_statement = error
log_min_duration_statement = 1000 # 记录执行超过 1 秒的 SQL
log_connections = on
log_disconnections = on
log_statement = 'all' # none / ddl / mod / all
sudo systemctl restart postgresql-12
或
sudo pg_ctl restart -D /var/lib/pgsql/12/data
cd /var/lib/pgsql/12/data/log
ls
tail -f postgresql-2026-01-21.log
如果日志目录不是默认目录,可能需要:
sudo setsebool -P postgresql_can_rsync on
或关闭 SELinux(不推荐生产):
sudo setenforce 0
logging_collector = on
log_directory = 'log'
log_filename = 'postgresql-%Y-%m-%d.log'
log_min_messages = warning
如果你告诉我 PostgreSQL 版本 + CentOS 版本 + 想记录什么日志(慢 SQL / 错误 / 全部 SQL),我可以给你一份精准配置。