我关注Flask's documentation on how to configure logging。但是,它似乎没有写入记录器,除非我明确告诉它(并且文档似乎同意。)
以下是我在create_app()
def create_app(environment):
""" creates the flask application. Uses a parameter to choose which config to use """
app = Flask(__name__)
# ...
error_handler = RotatingFileHandler(
os.path.join(app.config['LOG_FOLDER'], 'flask.log'),
maxBytes=100000,
backupCount=1
)
error_handler.setLevel(logging.NOTSET)
error_handler.setFormatter(Formatter(
'%(asctime)s %(levelname)s: %(message)s'
'[in %(pathname)s:%(lineno)d]'
))
app.logger.addHandler(error_handler)
现在我想要这样,每当发生错误时,就像在调试器中那样,将回溯放在日志中。在生产时这可能吗?
答案 0 :(得分:3)
最简单的方法是使用teardown_request
注册错误处理程序:
@app.teardown_request
def log_errors(error):
if error is None:
return
app.logger.error("An error occurred while handling the request", error)