Supervisord 會基於 logfile_maxbytes 和 logfile_backups 輪轉日志。當活躍日志文件大小達到 logfile_maxbytes,這個文件會被重命名為備份文件,然后 supervisord 會創建一個新的活躍日志文件。當上述情況發生時,如果已有備份文件的數量大於等於 logfile_backups,那么最舊的備份文件會被移除,然后其他剩余的日志文件會據此調整命名。
假如活躍日志名叫 supervisord.log,logfile_backups 設置為 2。當 supervisord.log 的大小達到 logfile_maxbytes,它會被關閉然后重命名為 supervisord.log.1,然后 supervisord 會再創建一個空的 supervisord.log。
當 supervisord.log 又達到 logfile_maxbytes,supervisord 根據已有的備份,將其重新命名為 supervisord.log.2(因為 supervisord.log.1 已經存在)。
當 supervisord.log 又達到 logfile_maxbytes,supervisord 發現已有備份達到了 logfile_maxbytes,所以刪除最舊的 supervisord.log.2,然后將 supervisord.log.1 重命名為 supervisord.log.2,將 supervisord.log 重命名為 supervisord.log.1,再創建一個空的 supervisord.log。
PS:在沒有看官方文檔之前,根據 backup 的字面意思,我認為所有的 supervisord.log.<num> 都是活躍日志 supervisord.log 的備份。而現在可以知道,supervisord.log.<num> 是之前的日志而不是當前活躍日志的備份,並且數字越大,日志越舊。
