Flask不打印sys.stdout.write消息

时间:2015-07-09 19:09:54

标签: python logging flask

我正在使用命令python app.py从此link运行烧瓶应用。

使用sys.stdout.write打印的更多日志不会打印在控制台上。但是,使用logging.StreamHandler可以将消息重定向到stdout。

有效,

import logging
import logging.handlers
logger = logging.getLogger('kumologging')
logger.setLevel(logging.DEBUG)
ch = logging.StreamHandler()
logger.addHandler(ch)
logger.info("hey, i am from logger obj")

不起作用

import sys
sys.stdout.write("hey, i am from stdout")

flask会覆盖sys.stdout文件描述符,将日志重定向到其他地方吗?

1 个答案:

答案 0 :(得分:6)

afaik flask app.run()使用gunicorn网络包

我相信gunicorn实际上是重定向输出的那个

输出可能在/var/log/gunicorn/error.log(不确定它在Windows上的位置:/)

或其可能的sys.stdout只是没有刷新缓冲区, 写完之后试试sys.stdout.flush()