使用 Flask 和 RotatingFileHandler 进行原子日志文件轮换

Atomic log file rotation with Flask and RotatingFileHandler

我在 Flask 应用程序中使用标准 RotatingFileHandler,下一个参数为:maxBytes=10 * 1024 * 1024, backupCount=50。应用程序由 nginx 背后的 uWSGI 管理。 uWSGI 配置文件部分如下所示:

processes = 16
enable-threads = true
threads = 10

应用程序启动后,一切(我的意思是日志记录)都运行良好。但是在第一次日志文件旋转之后,一些进程(也可能是线程)继续写入旋转文件和一些 - 到新文件。这很明显。但对我来说,如何以我的所有进程(和线程)开始将消息写入新文件的方式轮换日志文件并不那么明显。

请注意,不支持从多个进程写入单个日志文件,因为没有可以使用的跨平台同步机制。请参阅 this cookbook entry 以了解可能适合您的建议方法。