温馨提示×

centos怎么开启postgresql日志

小樊
44
2026-09-03 08:35:52
栏目: 云计算

在 CentOS 上开启 PostgreSQL 日志,通常需要修改 postgresql.conf 配置文件,并根据不同版本略有差异。下面以常见版本(如 PostgreSQL 12/13/14/15)为例说明。


一、找到 PostgreSQL 配置文件

通常位置如下(以版本 14 为例):

/var/lib/pgsql/14/data/postgresql.conf

也可通过 SQL 查看:

SHOW config_file;

二、修改 postgresql.conf 开启日志

编辑配置文件:

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

1️⃣ 开启日志收集(必须)

logging_collector = on

2️⃣ 设置日志目录(可选,默认在 pg_log)

log_directory = 'log'

3️⃣ 设置日志文件名格式

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

4️⃣ 日志轮转(推荐)

log_rotation_age = 1d
log_rotation_size = 100MB

5️⃣ 记录哪些日志(常用配置)

log_statement = 'all'        # 记录所有 SQL(调试用)
log_min_duration_statement = 0  # 记录所有执行语句(或设为 1000 表示 >1s)
log_connections = on
log_disconnections = on
log_line_prefix = '%m %p %u %d %a '

三、重启 PostgreSQL 服务

sudo systemctl restart postgresql-14

或通用方式:

sudo systemctl restart postgresql

四、查看日志

日志默认位置:

/var/lib/pgsql/14/data/log/

查看示例:

tail -f /var/lib/pgsql/14/data/log/postgresql-*.log

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

如果日志无法写入,检查 SELinux:

getenforce

临时关闭(不推荐生产):

setenforce 0

或正确配置 SELinux 权限(推荐)。


六、常用调试建议

  • 生产环境
    log_min_duration_statement = 1000
    
  • 开发/排查问题
    log_statement = 'all'
    

如果你告诉我 PostgreSQL 版本CentOS 版本(如 CentOS 7 / Stream 9),我可以给你更精确的路径和命令。

0