我创建了一个Flask应用程序,在整个应用程序中,我在每个模块中用行LOGGER = logging.getLogger(__name__)
创建了记录器。在应用程序的主模块中是
if __name__ == '__main__':
app.run(host='0.0.0.0', port=9876)
# subprocess.call(['gunicorn', 'main:app', '-w', '5', '-b', '0.0.0.0:9876'])
if
下的两行分别被注释和未注释,无论我选择是否穿越麻豆角。当不遍历gunicorn时,对端点的请求将导致打印日志。例如:
07-23 10:38 - INFO - 127.0.0.1 - - [23/Jul/2018 10:38:49] "POST /path/to-endpoint HTTP/1.1" 200 -
但是,当您浏览“ gunicorn”时,不会打印出此类日志(尽管会返回请求的预期结果。
此问题与提出的here相似,但是情况截然不同,以至于提议的修复措施无济于事。
有什么想法吗?
答案 0 :(得分:0)
我建议指定一个用于记录器的自定义名称。我认为__name__
可能会从gunicorn运行时返回不同的内容,您只需指定自己的记录器名称即可在各个模块中使用即可解决。
因此,在获取记录器对象的每个地方,都应像这样创建它:
LOGGER = logging.getLogger('my-logger-name')
my-logger-name
是在模块之间应保持相同的任何字符串。