首页 > 解决方案 > PostgreSQL 日志轮换大小达到文件限制

问题描述

我在 postgreSQL 13 中配置了以下设置。

logging_collector = on  
log_rotation_size='100MB'
log_truncate_on_rotation = on    
log_filename ='postgresql-%Y-%m-%d.log'

我的问题是当日志文件大小达到 100MB 时,它会继续追加,我认为这是因为 log_filename。无论如何,当文件名达到 log_rotation_size 时,我可以重命名文件名吗?我需要使用这种格式(没有时间)设置 log_filename,这样每当我重新启动服务时,日志仍然会在同一个日志文件中。

我是否必须在后台运行一些脚本或服务,以便程序能够监控数据/日志文件夹并在日志文件大小达到限制时重命名文件?

标签: windowspostgresqlpowershellbatch-filepostgresql-13

解决方案


正如文档所说:

但是,仅当由于基于时间的轮换而打开新文件时才会发生截断,而不是在服务器启动或基于大小的轮换期间。

在您的情况下截断日志文件将意味着丢失最近的日志信息,因此 PostgreSQL 不会这样做。

我想不出比cron在接近限制时删除日志文件更好的方法了。然后基于大小的日志轮换将再次创建文件。


推荐阅读