如何使用guncorn进行Django日志记录

时间:2014-01-24 18:42:42

标签: django logging gunicorn supervisord

我有一个运行gunicorn的Django 1.6网站,由主管管理。在测试和runserver期间,我登录了控制台,但是使用gunicorn,语句不会显示在任何地方(甚至不是ERROR级别日志)。它们应该在/var/log/supervisor/foo-stderr---supervisor-51QcIl.log中,但它们不是。我使用supervisor在不同的机器上运行芹菜,其调试语句在其管理程序错误文件中显示正常。

编辑: 在前台运行gunicorn表明我的错误消息没有像运行manage.py时那样记录到stderr。这绝对是一个枪手问题而不是主管问题。

3 个答案:

答案 0 :(得分:5)

我在GitHub上得到了回复:

https://github.com/benoitc/gunicorn/issues/708

  

由于您已经通过了disable_existing_loggers,因此当Django加载您的日志记录配置时,会禁用Gunicorn记录器。如果您要设置此项,因为您要禁用某些默认的Django日志记录配置,请确保使用您想要的任何处理程序添加gunicorn记录器,gunicorn.error和gunicorn.access。

答案 1 :(得分:2)

/etc/supervisor/conf.d/your-app.conf中,您应该设置日志路径:

stdout_logfile=/var/log/your-app.log
stderr_logfile=/var/log/your-app.log

答案 2 :(得分:0)

首先,在gunicorn脚本的supervisor配置中,一定要定义

stdout_logfile=/path/to/logfile.log
redirect_stderr=true

这将使stdout和stderr转到同一个文件 现在,在你的gunicorn脚本上,请务必使用以下参数调用该过程

gunicorn YourWSGIModule:app --log-level=critical