在 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
sudo nano /etc/postgresql/15/main/postgresql.conf
logging_collector = on
log_directory = 'log'
log_filename = 'postgresql-%Y-%m-%d.log'
log_rotation_age = 1d
log_rotation_size = 100MB
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
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 环境),可以告诉我,我可以给你更精确的配置。