【发布时间】:2015-03-17 06:15:46
【问题描述】:
我在我的 Flask 应用程序中使用标准 RotatingFileHandler 和下一个参数:maxBytes=10 * 1024 * 1024, backupCount=50。应用由 nginx 后面的 uWSGI 管理。 uWSGI 配置文件部分如下所示:
processes = 16
enable-threads = true
threads = 10
在应用程序启动后,一切(我的意思是日志记录)都运行良好。但是在第一次日志文件轮换之后,一些进程(也可能是线程)继续写入旋转的文件和一些 - 到新的。这很明显。但对我来说,如何以我的所有进程(和线程)开始将消息写入新文件的方式轮换日志文件并不是很明显。
【问题讨论】:
-
您可以旋转文件,但最好使用一个专用进程来侦听套接字并像现在一样使用
RotatingFileHandler写入文件。 IMO 这不是一个大的变化,实际上调用日志记录的代码都不会受到影响 - 只是进行日志记录配置的代码。 -
是的,这很容易做到。
-
张贴this link 供未来的读者解释为什么这种行为发生在 Flask / pre-forked 应用程序中。这不是一个解决方案,但肯定有助于理解。
标签: python logging flask multiprocessing uwsgi