ubuntu

Ubuntu PostgreSQL数据库日志如何查看

小樊
42
2025-09-21 09:14:01
栏目: 云计算

Ubuntu系统下查看PostgreSQL数据库日志的方法

1. 快速查看实时日志(默认日志文件)

PostgreSQL的默认日志文件存储在/var/log/postgresql/目录下,文件名格式为postgresql-<version>-main.log<version>为PostgreSQL版本号,如15、16)。使用以下命令实时查看最新日志内容:

sudo tail -f /var/log/postgresql/postgresql-<version>-main.log

<version>替换为实际版本号(可通过psql --version命令查询),此命令会持续输出日志文件的新增内容,适合监控实时日志。

2. 通过Systemd查看服务日志

PostgreSQL作为系统服务运行,其日志可通过journalctl命令(Systemd的日志管理工具)查看。使用以下命令实时跟踪PostgreSQL服务的所有日志:

sudo journalctl -u postgresql.service -f

若需查看特定时间范围的日志(如2025-09-20至2025-09-21),可添加时间参数:

sudo journalctl -u postgresql.service --since "2025-09-20 00:00:00" --until "2025-09-21 23:59:59"

此方法无需关心日志文件的具体路径,适合统一管理服务日志。

3. 配置详细查询日志(可选)

若需要记录所有SQL查询(包括执行时间、语句内容),需修改PostgreSQL的配置文件postgresql.conf(通常位于/etc/postgresql/<version>/main//var/lib/pgsql/data/)。找到以下参数并修改:

# 开启日志收集器
logging_collector = on
# 设置日志目录(需确保PostgreSQL用户有写入权限)
log_directory = 'pg_log'
# 设置日志文件名格式(按天分割)
log_filename = 'postgresql-%Y-%m-%d.log'
# 记录所有SQL语句(生产环境建议改为'none'或'dml'以减少日志量)
log_statement = 'all'
# 记录查询执行时间(毫秒)
log_duration = on

修改完成后,重启PostgreSQL服务使配置生效:

sudo systemctl restart postgresql

配置生效后,查询日志会存储在/var/log/postgresql/pg_log/目录下(路径由log_directory参数指定),可使用tailjournalctl命令查看。

注意事项

0
看了该问题的人还看了