Python日志与线程本地变量
我想在所有的网页应用日志前面加上用户的邮箱。
我可以把邮箱(从 cookie 里获取的)存储在 threading.local()
里。但是我不能总是确保这个变量会在线程的本地存储中。
有没有办法让我应用里的所有日志记录器都这样做呢?
1 个回答
1
你可以创建一个 logging.Filter() 对象,这个对象可以获取线程本地的变量(如果没有的话就用一个合适的默认值),并把它添加到日志记录中。然后把这个过滤器附加到根日志记录器上,这样在所有日志记录被发送到处理器之前,它都会被调用。一旦这个变量被放进日志记录里,你就可以在用来显示或保存信息的格式化器中使用它。