在gunicorn和主管后面的烧瓶 - 记录所有请求和响应

msc*_*arf 7 python flask supervisord gunicorn

我继承了一个在gunicorn和主管后面运行的烧瓶服务器.在日志文件中我想看到:

  • 所有传入的请求
  • 所有传出的回复

我有多名枪手.我的gunicorn.conf.py看起来像这样:

import multiprocessing

bind = "0.0.0.0:8000"

workers = multiprocessing.cpu_count() * 2 + 1
worker_class = 'gevent'

max_requests = 1000
timeout = 30
keep_alive = 2

preload = True
Run Code Online (Sandbox Code Playgroud)

gunicorn.conf对于supervisor这个样子的:

[program:gunicorn]
command=/opt/anaconda/bin/gunicorn manage:app -c /etc/config/gunicorn.conf.py
directory=/root/ourthing/web
environment=PYTHONPATH=/root/ourthing/web
user=root
autorestart=true
stdout_logfile=/opt/logs/gunicorn_stdout.log
stderr_logfile=/opt/logs/gunicorn_stderr.log
loglevel=info
priority=400
Run Code Online (Sandbox Code Playgroud)

有了loglevel=info,我期望看到的请求和响应gunicorn_stdout.loggunicorn_stderr.log,但没有骰子.

我已经实现了这个用于日志记录,它可以工作,但必须手动发送每个请求和响应logger.info似乎疯了.

这里有什么设置可以自动完成吗?

如果是的话,我该把它放在哪里?

另外,我假设所有工人都写入同一个日志....

编辑:这是我gunicorn.conf.py通过接受的答案添加的内容:

accesslog = '/root/logs/accesslog.log'
loglevel = 'debug'
access_log_format = '%(h)s %(l)s %(u)s %(t)s "%(r)s" %(s)s %(b)s "%(f)s" "%(a)s"'
Run Code Online (Sandbox Code Playgroud)

Jac*_*din 7

loglevel配置只设置会影响错误日志,因此改变其值不会帮助你记录成功的请求和响应.

相反,尝试设置accesslog(以启用访问日志等)和access_log_format您的gunicorn.conf.py配置文件.