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官方文档。