我希望将用户电子邮件添加到所有网络应用日志中。
我可以在threading.local()
中存储电子邮件(取自cookie等)。但是我无法确定变量将在线程本地中存在。
有没有办法告诉我的应用中的所有记录器都是这样的?
答案 0 :(得分:1)
您可以创建一个logging.Filter()对象来抓取线程局部变量(或者当它不存在时的合适默认值)并将其添加到日志记录中。将该过滤器附加到根记录器,并在将所有日志记录传递给处理程序之前调用它。变量在日志记录中后,可以在用于显示/保存信息的格式化程序中使用。