0

在为 postgres 服务器测试日志的过程中,我们发现日志同时被发送到两个不同的目录。

这两个地点是:

  • /var/lib/postgresql/9.6/main/pg_log/(故意的)
  • /var/log/postgresql/(无意)

之前更改的设置postgresql.conf

logging_collector = on
log_destination = 'csvlog'

设置postgresql.conf未更改,但相关:

log_directory = 'pg_log'
log_truncate_on_rotation = off

我知道这两个目录都是 postgres 日志记录的标准目录,但同时发送到这两个目录似乎不寻常。

我们测试了一天的日志记录,当天创建了两组日志。

4

1 回答 1

3

您必须为 PostgreSQL 使用 Debian/Ubuntu 软件包。

打包者选择使用 PostgreSQL' logging_collector,而是让进程将消息写入标准错误。然后将这些消息收集到 中的日志文件中/var/log/postgresql,并对它们应用日志轮换(请参阅启动脚本了解它们是如何做到的)。

现在,如果您像以前一样在 PostgreSQL 中配置日志记录,日志将被写入log_directory,但启动过程没有改变:它仍然在 中创建一个文件/var/log/postgresql,但现在只有启动后的前几条消息在那里结束,然后 PostgreSQL 切换使用其日志文件。

于 2021-04-22T15:25:27.140 回答