如何登录Flask

时间:2017-01-21 19:50:14

标签: flask

我正在运行一个烧瓶应用程序。我想写一个日志。

app = Flask(__name__)

print()语句不起作用。 (可能是因为我在Docker容器中运行烧瓶?)在网络的某个地方我发现了这种语法:

app.logger.info('successful query')

除了输出相当笨重之外哪些方法有效:

--------------------------------------------------------------------------------
INFO in app [/usr/src/app/app.py:187]:
successful query
--------------------------------------------------------------------------------

你可以想象连续一堆这些是多么令人讨厌。您可以打印4行,然后打印一行。

是否有一种简单易用的方法可以在一行中记录烧瓶中的任意消息?

2 个答案:

答案 0 :(得分:2)

事实证明,执行此操作的最佳方法是使用app.logger.info(或app.logger's functions中的任何一个),但更改格式为app.debug_log_format

This StackOverflow question有更多详情。

答案 1 :(得分:1)

我认为Formatter是最好的方法。 例如:

import logging
from logging.handlers import TimedRotatingFileHandler
from flask import Flask

app = Flask(__name__)

formatter = logging.Formatter("[%(asctime)s] %(message)s")

handler = TimedRotatingFileHandler('path/to/file.log', when='midnight', 
                                   interval=1, backupCount=5)
handler.setLevel(logging.INFO)
handler.setFormatter(formatter)
app.logger.addHandler(handler)

asctime 消息是预定义的attributes