显示Postgres服务器日志输出终端并同时记录到日志

Pat*_*Pat 5 postgresql

我正在运行Postgres 9.1(在Mac OSX上安装Homebrew),我想更密切地监控我的postgres服务器.

我的问题与日志有关.我想在终端窗格中显示日志.以下是Postgres 文档对日志的说法:

"在类Unix系统上,默认情况下,服务器的标准输出和标准错误被发送到pg_ctl的标准输出(非标准错误).然后应将pg_ctl的标准输出重定向到文件或通过管道传输到另一个进程,例如日志旋转程序如rotatelogs;否则postgres会将其输出写入控制终端(从后台)并且不会离开shell的进程组.在Windows上,默认情况下服务器的标准输出和标准错误被发送到终端.这些默认行为可以使用-l将服务器的输出附加到日志文件来更改.建议使用-l或输出重定向."

所以,当我使用以下内容运行我的postgres服务器时:

pg_ctl start -D /usr/local/var/postgres
Run Code Online (Sandbox Code Playgroud)

日志显示在终端窗口中.当我跑:

pg_ctl start -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log
Run Code Online (Sandbox Code Playgroud)

日志转到我的日志文件,不显示在终端中.

简而言之,如果有人能够在我将日志定向到文件(使用第二个命令)之后告诉我我使用了什么命令以使日志也出现在命令行中,那将是很棒的.当我正在开发(在Django中)观察SQL语句实时执行时,它会有所帮助.

Eel*_*lke 15

您可以使用以下命令查看日志:

tail -f /usr/local/var/postgres/server.log
Run Code Online (Sandbox Code Playgroud)

  • 我的`/ usr/local /`目录中没有`var`文件夹!! (5认同)
  • @NishantKumar,答案中的路径基于 macos 上的自制程序。postgresql 实际日志的位置和内容可能因平台、安装程序而异,也可以由用户更改。执行以下查询可以为您指明正确的方向“SHOW log_directory;” (2认同)

rba*_*ish 6

我能够在以下位置找到日志:

less /var/log/postgresql/postgresql-10-main.log
Run Code Online (Sandbox Code Playgroud)

使用ubuntu 18.04postgresql version: 10

  • Ubuntu 18.04 和 Postgres 版本:12 tail -f /var/log/postgresql/postgresql-12-main.log (2认同)