python Gunicorn:重新启动时不要清空指定的日志文件

2skhul33  于 2023-01-04  发布在  Python
关注(0)|答案(1)|浏览(134)

我已经创建了一个Gunicorn项目,在配置文件中指定了accesslogerrorlog,然后启动服务器时只使用-c标志来指定此配置文件。
问题是,每次我重新启动相同的Gunicorn进程(通过pkill -F <pidfile, also specified in config>),在这些配置中指定的文件都被清空。我得到一个信息,这是因为Gunicorn打开这些文件的模式是“写入”,而不是“附加”,但在官方设置中没有找到任何相关信息。
我该如何解决这个问题?这很重要,因为我经常忘记手动备份这些日志,而且到目前为止还没有自动备份的能力。

06odsfpq

06odsfpq1#

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

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

文件模式w总是清空文件。制定一个规则,将其仅用于pidfile,将a用于日志文件,解决了这个问题。

相关问题