自动将flask的消息记录到记录器

时间:2014-06-16 21:29:07

标签: python logging flask

我关注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)

现在我想要这样,每当发生错误时,就像在调试器中那样,将回溯放在日志中。在生产时这可能吗?

1 个答案:

答案 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)