首页 > 解决方案 > Gunicorn 访问日志显示空用户

问题描述

使用以下命令:

gunicorn --workers=4 my_project.wsgi -b 0.0.0.0:8000 --log-level=info --access-logfile=my_project/logs/gunicorn_logs.txt

我能够记录每个请求。但是,这些日志不包含有关用户的信息:

127.0.0.1 - - [02/Aug/2018:13:46:44 -0500] GET /metrics/data HTTP/1.1 200 1589185 http://localhost:8000/ Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36

默认格式字符串是%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s",如果我正确理解文档,“用户名”应该显示在“推荐人地址”之后和“请求日期”之前。我还将该格式字符串作为运行命令的一部分包含在内,只是为了验证是否发生了同样的事情,并且确实发生了。

我是否可以让 Gunicorn 也记录发出请求的用户?任何帮助,将不胜感激。

这是运行 Gunicorn 19.7.1 和 Django 1.11.9。

标签: djangopython-3.xgunicorn

解决方案


gunicorn源码看,好像这只是针对http基本认证的用户名。这不是现在很常见的身份验证方法,django 有自己的用户身份验证,与基本身份验证无关。

除非您使用基本身份验证(出于某种原因),否则预期值为-. 如果要为每个请求记录 django 用户,则必须使用 django 自己的日志记录。


推荐阅读