【问题标题】:Django Logging and Session InformationDjango 日志记录和会话信息
【发布时间】:2017-08-28 04:09:48
【问题描述】:

我已经尝试用谷歌搜索这个,但找不到答案,所以如果有人可以将我指向文档或解释如何做到这一点,那就太好了。

我正在尝试在所有日志中包含来自 Django 请求(即 cookie)的会话信息,现在这在有权访问请求的视图等中很好,我可以在我正在记录的消息中对其进行格式化。

问题在于已安装的包,这些包不知道会话并在没有这些信息的情况下记录日志,我还没有找到一种方法在格式化程序中定义它,以便格式化程序更加了解会话。

我需要这样做,因为我必须将所有日志发送到系统日志服务器,并且希望能够搜索整个会话的日志并获得包级别的日志。

编辑:

对不起,我正在编辑问题以更清楚一点。

总体目标是使用会话信息包装在 api 调用中生成的所有消息,这将包括与 Django 应用程序本身没有直接关联的任何包,这样我就可以搜索与一个会话。我希望这是有道理的

谢谢

约翰。

【问题讨论】:

  • 向我们展示您的包相关代码语句正在记录的代码!
  • 这个问题比我可以用代码 sn-p 显示的更通用,问题更多的是如何正确使用格式化程序将会话信息注入每个会话生成的所有日志中?

标签: python django session logging


【解决方案1】:

类似这样的:

from django.contrib.sessions.backends.db import SessionStore

s = SessionStore()
# stored as seconds since epoch since datetimes are not serializable in JSON.
s['last_login'] = 1376587691
>>> s.create()
>>> s.session_key
'2b1189a188b44ad18c35e113ac6ceead'

Django 文档参考:https://docs.djangoproject.com/en/1.10/topics/http/sessions/#using-sessions-out-of-views

【讨论】:

  • 嗨,谢谢你,我对如何在 Django 日志格式化程序中使用它仍然有点模糊,而且包仍然不知道这个变量,除非我专门将它传递给他们,并且为了使这些包模块化,它们应该对会话一无所知。
猜你喜欢
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
  • 1970-01-01
  • 2019-12-13
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 2020-06-26
相关资源
最近更新 更多