postgres 9.1日志文件更改

时间:2012-07-02 14:15:52

标签: postgresql logging ubuntu

我有一个连续运行的标准Ubuntu postgres9.1安装,我可能不会阻止它。

没有专门针对日志记录目标进行配置, 所以有一个(以某种方式旋转) logfile /var/log/postgresqlpostgresql-9.1-main.log。 我想,它抓住了流程的标准输出。

我想要的是配置不同的文件目标,并且无需重启 (对不起,没有收藏家,没有系统日志......那些需要重启的人) 但是通过重新配置,新的子进程使用了​​该文件。

这可能吗? 谢谢。

2 个答案:

答案 0 :(得分:4)

我相信这相对简单。遗憾的是,它确实需要使用日志记录收集器,这需要重新启动才能启用。没有它,你就无法在分区之间移动日志。

您可以配置使用的日志: /etc/postgresql/<version>/<cluster>/postgresql.conf

log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log

更改此设置后,您需要执行service postgresql reload以获取更改。

也许我应该在此明确指出,这个答案的重点是你可以在不重启服务器的情况下使用service postgresql reload

答案 1 :(得分:0)

我修改了之前的答案,因为DanielVérité指出,如果不使用logging_collector就无法设置日志文件,log_filename选项将被忽略。

通过“copy-truncate”完成旋转。那就是logrotate制作文件的副本然后清空主日志文件。

在这种情况下,我认为你会很幸运,因为服务器打开了日志的文件句柄,只使用那个写入。这意味着您只需重命名文件mv old_name.log new_name.log即可。 postgresql使用的文件句柄绑定到文件本身而不是名称。

此解决方案确实带有重新启动服务器时的问题,它将在旧名称下创建一个新的日志文件。您需要进行配置更改,以便在重新启动时继续写入同一位置。