Logging

postgres內部日誌輪換機制可以刪除超過一定時間的日誌文件嗎?

  • March 1, 2014

我正在使用 posgtres 的內部日誌輪換機制。我想刪除超過 30 天的日誌文件。我如何讓 postgres 做到這一點?如果 postgres 不支持它,我可以將 logrotate 設置為僅刪除 30 天以上的日誌嗎?

我目前的配置是:

log_destination = 'stderr'             
logging_collector = on
log_directory = 'pg_log'                
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' 
#log_truncate_on_rotation = off 
log_rotation_age = 1440         
log_rotation_size = 0    

我不相信 Postgres 日誌記錄機制支持這種清理,但是只要您不弄亂 Postgres 正在寫入的活動日誌文件,使用 logrotate 或 cron 作業刪除舊日誌是完全安全的。

對於 Postgres 日誌記錄,我通常更喜歡記錄到 syslog 並讓正常的日誌輪換過程來完成他們的工作。這有一些優點,但最大的兩個是能夠以與其他守護程序相同的方式使用標準日誌輪換過程(如 logrotate),以及讓 syslog 守護程序將日誌發送到遠端主機(如果這是你有一天想做的事情。

Postgres 手冊的第 23.3 節討論了其他選項(儘管很簡短)。

引用自:https://serverfault.com/questions/327854