PostgreSQL 容器日志个性化设置指南

学习笔记作者:admin日期:2025-07-23点击:28

摘要:本文介绍了如何在 PostgreSQL 容器中自定义日志记录规则,包括修改配置文件、设置日志级别、格式、轮转策略,并提供了重启容器和查看日志的方法。

1. 确认数据卷挂载

      你已经将容器内的 /var/lib/postgresql/data 挂载到了宿主机的 /root/dockerdata/postgres,这意味着你可以直接在宿主机上编辑 PostgreSQL 的配置文件。

2. 常用日志相关配置项

# 日志输出目录(默认为 data 目录下,建议保持默认)
log_directory = 'pg_log'

# 日志文件名模式
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

# 设置日志级别(例如只记录错误、警告和致命错误)
log_min_messages = warning
log_min_error_statement = error
log_min_duration_statement = 1000  # 记录执行时间超过 1000ms 的 SQL 语句

# 是否记录查询语句(开启后会记录所有 SQL)
log_statement = 'none'  # 可选: none, ddl, mod, all

# 是否记录连接与断开
log_connections = on
log_disconnections = on

# 日志格式化(推荐加上时区和进程 ID)
log_line_prefix = '%t [%p]: [%l-1] user=%u,db=%d '

# 自动轮换日志文件(按天/大小)
log_truncate_on_rotation = on
log_rotation_age = 1d
log_rotation_size = 10MB

# 使用 syslog(可选)
# logging_collector = off

3. 重启容器使配置生效

docker restart bitmagnet-postgres

4. 查看日志文件

docker exec -it bitmagnet-postgres ls /var/lib/postgresql/data/pg_log/
docker exec -it bitmagnet-postgres cat /var/lib/postgresql/data/pg_log/postgresql-*.log

5. 可选:使用日志驱动转发到外部系统

logging:
  driver: "json-file"
  options:
    max-size: "10m"
    max-file: "3"

6. 总结

步骤 内容
1. 修改 postgresql.conf 来定制日志格式、级别、文件名等
2. 挂载了数据卷,可以直接在宿主机编辑配置文件
3. 修改后重启容器
4. 查看日志文件验证是否生效
5. 可选:使用 Docker 日志驱动来统一管理日志

上一篇      下一篇