Gunicorn gevent worker 日志记录问题
Gunicorn gevent worker logging issues
我有一个 gunicorn
服务器 运行 1 名工人。我在请求期间使用日志记录模块。 None 其中出现在标准输出中。
我知道 gevent workers monkey patch all 所以我假设在请求期间完成的任何登录都应该出现在主线程标准输出上。
gunicorn的app解析为django的wsgi应用
gunicorn -c gunicorn.py core.wsgi:application
在 gunicorn.py
我有:
bind = '0.0.0.0:8080'
backlog = 2048
workers = 1
worker_class = 'gevent'
worker_connections = 1000
timeout = 60
keepalive = 2
proc_name = None
def post_fork(server, worker):
server.log.info("Worker spawned (pid: %s)", worker.pid)
def pre_fork(server, worker):
pass
def pre_exec(server):
server.log.info("Forked child, re-executing.")
def when_ready(server):
server.log.info("Server is ready. Spawning workers")
def worker_int(worker):
worker.log.info("Worker received INT or QUIT signal")
import threading, sys, traceback
id2name = dict([(th.ident, th.name) for th in threading.enumerate()])
code = []
for thread_id, stack in sys._current_frames().items():
code.append("\n# Thread: %s(%d)" % (id2name.get(thread_id, ""),
thread_id))
for filename, line_no, name, line in traceback.extract_stack(stack):
code.append('File: "%s", line %d, in %s' % (filename,
line_no, name))
if line:
code.append(" %s" % (line.strip()))
worker.log.debug("\n".join(code))
def worker_abort(worker):
worker.log.info("Worker received SIGABRT signal")
在请求函数中,我简单地输入了
import logging
logging.error('test'))
它仅在工作人员完成其请求后才执行此日志。
而其他一些日志甚至都没有这样显示。
import logging
logger = logging.getLogger('test_logger'))
logger.setLevel(logging.DEBUG)
logger.error('test')
如果您需要我提供任何其他信息来帮助我解决此问题,请联系我们。
只需要将其添加到 gunicorn.py
errorlog = '-'
loglevel = 'info'
accesslog = '-'
我有一个 gunicorn
服务器 运行 1 名工人。我在请求期间使用日志记录模块。 None 其中出现在标准输出中。
我知道 gevent workers monkey patch all 所以我假设在请求期间完成的任何登录都应该出现在主线程标准输出上。
gunicorn的app解析为django的wsgi应用
gunicorn -c gunicorn.py core.wsgi:application
在 gunicorn.py
我有:
bind = '0.0.0.0:8080'
backlog = 2048
workers = 1
worker_class = 'gevent'
worker_connections = 1000
timeout = 60
keepalive = 2
proc_name = None
def post_fork(server, worker):
server.log.info("Worker spawned (pid: %s)", worker.pid)
def pre_fork(server, worker):
pass
def pre_exec(server):
server.log.info("Forked child, re-executing.")
def when_ready(server):
server.log.info("Server is ready. Spawning workers")
def worker_int(worker):
worker.log.info("Worker received INT or QUIT signal")
import threading, sys, traceback
id2name = dict([(th.ident, th.name) for th in threading.enumerate()])
code = []
for thread_id, stack in sys._current_frames().items():
code.append("\n# Thread: %s(%d)" % (id2name.get(thread_id, ""),
thread_id))
for filename, line_no, name, line in traceback.extract_stack(stack):
code.append('File: "%s", line %d, in %s' % (filename,
line_no, name))
if line:
code.append(" %s" % (line.strip()))
worker.log.debug("\n".join(code))
def worker_abort(worker):
worker.log.info("Worker received SIGABRT signal")
在请求函数中,我简单地输入了
import logging
logging.error('test'))
它仅在工作人员完成其请求后才执行此日志。 而其他一些日志甚至都没有这样显示。
import logging
logger = logging.getLogger('test_logger'))
logger.setLevel(logging.DEBUG)
logger.error('test')
如果您需要我提供任何其他信息来帮助我解决此问题,请联系我们。
只需要将其添加到 gunicorn.py
errorlog = '-'
loglevel = 'info'
accesslog = '-'