我正在尝试为烧瓶应用配置多个记录器。
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配置多个记录器的推荐方法的任何想法吗?
答案 0 :(得分:1)
如果Debug = True而不是flask只会记录一些考虑为ERROR的东西尝试设置你的日志级别如下:
app.logger.setLevel(logging.DEBUG)
答案 1 :(得分:1)
我发现记录器输出文件的位置比我预期的高一级。使用记录器文件中的../log_out.txt将记录器文件放在应用程序文件夹级别的两个目录中。