Supervisord 会基于 logfile_maxbyteslogfile_backups 轮转日志。当活跃日志文件大小达到 logfile_maxbytes,这个文件会被重命名为备份文件,然后 supervisord 会创建一个新的活跃日志文件。当上述情况发生时,如果已有备份文件的数量大于等于 logfile_backups,那么最旧的备份文件会被移除,然后其他剩余的日志文件会据此调整命名。

假如活跃日志名叫 supervisord.loglogfile_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> 是之前的日志而不是当前活跃日志的备份,并且数字越大,日志越旧。

参考

http://supervisord.org/logging.html
http://supervisord.org/configuration.html