Gunicorn:重启时不清空指定的日志文件



我创建了一个Gunicorn项目,在配置文件中指定accesslogerrorlog,然后服务器启动时仅使用-c标志来指定此配置文件。

问题是,每次我重新启动相同的Gunicorn进程(通过pkill -F <pidfile, also specified in config>)时,这些配置中指定的文件都会被清空。我得到的信息是,这是因为Gunicorn打开这些文件的模式是"写",而不是"追加",但在官方设置中没有找到任何相关信息。

我该如何修复它?这很重要,因为我倾向于忘记手动备份这些日志,并且到目前为止没有能力自动备份。

这是我的错误,与Gunicorn本身无关:我有一个脚本可以创建任何不存在但仍然需要的文件,因为它可能会导致应用服务器崩溃:

for file in [pidfile, accesslog, errorlog]:
os.makedirs(os.path.dirname(file), exist_ok=True)
f = open(file, "w")

文件模式w总是清空文件。创建一个规则,只对pidfile使用它,而对日志文件使用a,解决了这个问题。

最新更新