在 CentOS 上开启 PostgreSQL 日志,主要通过修改 postgresql.conf 配置文件来实现。下面以 CentOS 7/8 + PostgreSQL 12/13/14/15 为例,步骤通用。
sudo -u postgres psql -c "SHOW config_file;"
一般路径类似:
/var/lib/pgsql/14/data/postgresql.conf
sudo vi /var/lib/pgsql/14/data/postgresql.conf
logging_collector = on
log_directory = 'log'
默认路径:
$PGDATA/log
log_filename = 'postgresql-%Y-%m-%d.log'
或按时间滚动:
log_filename = 'postgresql-%a.log'
log_statement = 'all'
可选值:
none(默认)ddlmodalllog_min_duration_statement = 1000 # 毫秒(1秒)
log_connections = on
log_disconnections = on
log_duration = off
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d,app=%a,client=%h '
sudo systemctl restart postgresql-14
sudo systemctl restart postgresql
cd /var/lib/pgsql/14/data/log
ls
tail -f postgresql-2026-01-21.log
SET log_statement = 'all';
⚠️ 只对当前会话有效,重启失效。
logging_collector = on
log_directory = 'log'
log_filename = 'postgresql-%Y-%m-%d.log'
log_min_duration_statement = 500
log_connections = on
log_disconnections = on
log_line_prefix = '%t [%p]: user=%u,db=%d,client=%h '
logging_collector = ongetenforce
临时关闭测试:
sudo setenforce 0
如果你愿意,可以告诉我:
我可以帮你给出最优日志配置方案。