我正在尝试在API调用正在进行时在flask应用程序中记录语句。我想直接将语句记录到DB。问题是我到处都有数据库会话提交和回滚。我想记录与API调用会话无关的语句
例如
new_log = Log()
db.session.add(new_log)
...
if some logic:
db.session.rollback()
else:
db.session.commit()
在上面的代码中,我希望无论“某些逻辑”如何都提交new_log
我已经尝试过(看来我成功了),使用我的主应用程序文件中创建了一个单独的数据库会话
db = SQLAlchemy(app)
logger_db = SQLAlchemy(app)
现在我的代码看起来像
new_log = Log()
logger_db.session.add(new_log)
logger_db.session.commit()
...
if some logic:
db.session.rollback()
else:
db.session.commit()
这似乎有效。但是我想知道是否还有其他更好的解决方案。另外,如果有人指出无法解决该问题的情况,那就太好了。
P.S .:我将在应用程序的任何地方使用日志记录,因此我也担心性能。我也知道我也可以登录文件,但是现在,我只想坚持使用db方法