我在 Windows 上的 PostgreSQL 13 中配置了以下设置。
logging_collector = on
log_rotation_size='100MB'
log_truncate_on_rotation = on
log_filename ='postgresql-%Y-%m-%d.log'
我已经配置了 PostgreSQL 来创建每日日志。当文件达到其配置的 log_rotation_size 时,PostgreSQL 是否可以创建另一个文件(使用配置的文件名)并通过附加不同的文件名来重命名现有文件?
我是否必须在后台运行一些脚本或服务,以便程序能够监视数据/日志文件夹并在日志文件大小达到限制时重命名文件?
答案1
在 Linux 上,您可以让 PostgreSQL 创建一个具有简单名称的日志(例如 postgresql.log),然后配置 logrotate 来管理 PostgreSQL 日志,根据需要轮换和删除它。
支持这一点的信息(虽然没有告诉你如何做到这一点)是在PostgreSQL 文档中有关日志文件维护的部分。
然而,在 Windows 上您(可能)没有此选项,因此文件如何旋转取决于您,无论是通过脚本还是其他实用程序。
答案2
引用 Postgres 手册...https://www.postgresql.org/docs/current/runtime-config-logging.html
日志文件名(字符串)
当启用logging_collector时,此参数设置创建的日志文件的文件名。该值被视为strftime模式,因此可以使用%-escapes来指定随时间变化的文件名。
因此,如果您将您的名称设置为类似这样的名字,那么除非您在一秒钟内达到 100MB 的日志量(在您的配置中设置的限制),否则您应该不会发生冲突。
postgresql-%Y-%m-%d_%H%M%S.log
HTH,Z.