【发布时间】:2016-01-06 12:04:30
【问题描述】:
我想将“werkzeug”输出存储在一个文件中(或创建一个类似的日志文件),并向每一行日志添加额外的数据。 (例如用户名的值,如果该值在会话中已知)
如何进行?如果会话中不知道用户名,我希望用户是“未知的”。
是否可以在执行 app.run() 之前定义所有内容? (因为我在 app.run 之前尝试使用会话对象时确实遇到了“在请求上下文之外工作”错误)
class UserIDFilter(logging.Filter):
"""
This is a filter which injects contextual information into the log.
"""
from flask import session
def filter(self, record):
username = session.get('username','unknown')
record.user_id = username
return True
logFormatStr = '%(asctime)s - %(levelname)s - %(message)s'
logging.basicConfig(filename='output.log',format = logFormatStr, level=logging.DEBUG)
app.run(debug=True)
我关于 app.run 的问题是了解程序如何能够访问存储在会话中的用户值。 (我想也许我必须在定义日志记录之前启动“app.run”。)
对我来说,最好的答案是一个 Hello World 示例,其中用户名存储在会话中,并带有一个添加了该信息的日志文件(类似于 werkzeug)。
【问题讨论】:
标签: python logging web-applications flask flask-login