Flask日志配置问题

时间:2016-03-27 03:42:24

标签: logging flask

我正在尝试为烧瓶应用配置多个记录器。

applogger.py:

import logging
from logging.handlers import SMTPHandler, RotatingFileHandler 

def setup_logging(app):
    file_handler = RotatingFileHandler("logger_out.txt")
    email_handler = SMTPHandler(...)
    loggers = [app.logger]
    for logger in loggers:
        logger.addHandler(email_handler)
        logger.addHandler(file_handler)
logger = LocalProxy(lambda: current_app.logger)

appsetup.py

def create_app(object_name):
    app = Flask(__name__)
    app.config.from_object(object_name)
    setup_logging(app)

appview.py

from applogger import logger

@app_view.route('/')
def index():
    logger.debug(">>index")
    return render_template('home.html')

登录到控制台可以正常工作,但文件和电子邮件记录器无法正常工作。此外,它看起来像是一个黑客将应用程序传递到applogger.py模块中的setup_logging()方法。 在此之前,我正在使用

app = current_app._get_current_object() 

来自setup_logging()方法,但得到了“在应用程序上下文之外工作”错误。有关为Flask配置多个记录器的推荐方法的任何想法吗?

2 个答案:

答案 0 :(得分:1)

如果Debug = True而不是flask只会记录一些考虑为ERROR的东西尝试设置你的日志级别如下:

app.logger.setLevel(logging.DEBUG)

答案 1 :(得分:1)

我发现记录器输出文件的位置比我预期的高一级。使用记录器文件中的../log_out.txt将记录器文件放在应用程序文件夹级别的两个目录中。