如何在flask中的记录器文件中添加stdout和stderr

我想记录stdout和stderr来记录文件,这就是我尝试过的方法。

app = Flask(__name__)

app.logger.setLevel(logging.INFO) # use the native logger of flask

app.logger.disabled = False

handler = logging.handlers.RotatingFileHandler(

SYSTEM_LOG_FILENAME,

'a',

maxBytes=1024 * 1024 * 100,

backupCount=20

)

formatter = logging.Formatter(\

"%(asctime)s - %(levelname)s - %(name)s: \t%(message)s")

handler.setFormatter(formatter)

app.logger.addHandler(handler)

@app.route('/')

def hello():

return 'Hello World'

if __name__ == '__main__':

app.run()

然后,我想将控制台输出记录在文件中。如

* Running on http://127.0.0.1:5000/

127.0.0.1 - - [24/May/2013 14:55:14] "GET / HTTP/1.1" 200 -

127.0.0.1 - - [24/May/2013 14:55:14] "GET /favicon.ico HTTP/1.1" 404 -

我能做什么?

回答:

你提到的不是来自flask的记录器的日志消息中,来自 werkzeug的记录,你还需要你的处理程序添加到该记录器实例手段,使其工作,如:

log = logging.getLogger('werkzeug')

log.setLevel(logging.INFO)

log.addHandler(handler)

如果你查看werkzeug如何初始化其记录器,则将看到只有在尚未设置日志记录的情况下,它才会添加默认处理程序。这意味着,如果你在wekzeug之前进行设置,它将不使用默认值,StreamHandler而是使用你提供的处理程序。

以上是 如何在flask中的记录器文件中添加stdout和stderr 的全部内容, 来源链接: utcz.com/qa/415673.html

回到顶部