Ubuntu上PostgreSQL日志查看方法
Ubuntu系统中,PostgreSQL的日志文件默认存储在/var/log/postgresql/
目录下,文件命名格式为postgresql-<version>-main.log
(例如postgresql-14-main.log
,<version>
为安装的PostgreSQL主版本号)。
使用tail -f
命令可实时监控日志文件的新增内容,适合快速定位近期错误或异常(如服务启动失败、查询超报错)。
sudo tail -f /var/log/postgresql/postgresql-<version>-main.log
按Ctrl+C
可停止实时监控。
若只需查看日志的最后N行(例如最后100行),可使用tail -n
命令,避免输出过多无用信息:
sudo tail -n 100 /var/log/postgresql/postgresql-<version>-main.log
使用less
命令可逐页浏览整个日志文件,支持上下翻页(空格键)、跳转行(输入行号+g
)、搜索关键字(输入/keyword
)等功能,退出时按q
键:
sudo less /var/log/postgresql/postgresql-<version>-main.log
若需查找日志中的特定内容(如“ERROR”错误、“TIMEOUT”超时),可使用grep
命令结合正则表达式,快速定位相关日志条目:
sudo grep "ERROR" /var/log/postgresql/postgresql-<version>-main.log
该命令会输出所有包含“ERROR”的日志行,帮助快速排查问题。
PostgreSQL的日志也会通过systemd-journald
服务记录,可使用journalctl
命令实时查看PostgreSQL服务的日志流:
sudo journalctl -u postgresql.service -f
此命令会显示PostgreSQL服务的所有日志输出(包括标准输出和错误输出),适合监控服务的整体运行状态。
root
用户或postgres
组,普通用户需使用sudo
提升权限才能查看。postgresql.conf
配置文件中的log_level
参数(设置为DEBUG
或INFO
),并重启PostgreSQL服务使配置生效:sudo systemctl restart postgresql
更多日志配置选项(如log_statement
记录执行的SQL语句、log_duration
记录查询耗时)可参考PostgreSQL官方文档。