温馨提示×

centos如何开启postgresql日志

小樊
34
2026-09-09 10:23:47
栏目: 云计算

在 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;

二、修改 postgresql.conf 开启日志

编辑配置文件:

sudo vi /var/lib/pgsql/12/data/postgresql.conf

1. 开启日志收集(必须)

logging_collector = on

2. 日志目录(可选,默认在 data 目录下 pg_log)

log_directory = 'log'

3. 日志文件名格式

log_filename = 'postgresql-%Y-%m-%d.log'

4. 日志滚动策略(推荐)

log_rotation_age = 1d
log_rotation_size = 100MB

5. 记录哪些日志(常用)

log_min_messages = warning
log_min_error_statement = error
log_min_duration_statement = 1000   # 记录执行超过 1 秒的 SQL

6. 记录连接和断开

log_connections = on
log_disconnections = on

7. 记录 SQL(按需开启,性能有影响)

log_statement = 'all'   # none / ddl / mod / all

三、重启 PostgreSQL 服务

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

五、SELinux 注意事项(CentOS 常见坑)

如果日志目录不是默认目录,可能需要:

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),我可以给你一份精准配置。

0