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 日志驱动来统一管理日志 |