温馨提示×

debian postgresql如何开启日志

小樊
35
2026-10-22 23:25:58
栏目: 云计算

在 Debian 上开启 PostgreSQL 日志,通常是通过修改 PostgreSQL 的配置文件 postgresql.conf 来完成。下面以 Debian 11/12 + PostgreSQL 14/15/16 为例说明。


一、找到配置文件位置

先确认 PostgreSQL 数据目录和配置文件位置:

sudo -u postgres psql -c "SHOW config_file;"

常见路径:

/etc/postgresql/15/main/postgresql.conf

二、编辑 postgresql.conf

sudo nano /etc/postgresql/15/main/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'        # none | ddl | mod | all
log_duration = on
log_line_prefix = '%m %p %u %d %a '
log_min_duration_statement = 0  # 记录所有 SQL(调试用)

⚠️ 生产环境不建议 log_statement = all,可改为:

log_min_duration_statement = 1000  # 记录超过 1 秒的 SQL

三、重启 PostgreSQL

sudo systemctl restart postgresql

四、查看日志

ls /var/lib/postgresql/15/main/log/

或实时查看:

sudo tail -f /var/lib/postgresql/15/main/log/postgresql-*.log

五、常见场景示例

✅ 只记录慢查询(推荐生产)

logging_collector = on
log_min_duration_statement = 1000

✅ 调试模式(开发环境)

logging_collector = on
log_statement = 'all'
log_duration = on

六、验证是否生效

sudo -u postgres psql -c "SHOW logging_collector;"

返回 on 即成功。


如果你有 特定需求(比如只记录错误、记录连接、syslog、Docker 环境),可以告诉我,我可以给你更精确的配置。

0 踩