【问题标题】:Django - logging unique IDDjango - 记录唯一 ID
【发布时间】:2011-12-19 07:12:22
【问题描述】:

我为每个传入的请求分配一个唯一 ID,并希望在记录完成时自动将其包含在日志中(无需在所有位置明确包含它)。我正在使用中间件生成此唯一 ID 并将其存储在本地线程中。

我想修改 Django 的日志格式化程序以直接包含这个唯一 ID:

LOGGING = {
    ...
    'formatters': {
        'full': {
            'format': '%(asctime)s %(levelname)s %(name)s - %(message)s',
        }
    }
    ...
} 

如何在不显式添加每个日志语句的情况下将唯一 id 组件添加到格式化程序?

【问题讨论】:

  • 我猜你将不得不编写一个自定义格式化程序,它使用类变量来生成 id 并在 LOGGING 字典中使用它
  • 对于希望将其与 Apache 的 mod_unique_iddjango-log-unique-id 一起使用的人 - 您需要添加 Django 设置:LOG_REQUEST_ID_HEADER = "UNIQUE_ID" 加上 Apache 配置:RequestHeader set UNIQUE_ID "%{UNIQUE_ID}e"

标签: python django logging


【解决方案1】:

使用Filter:该技术在this post 中进行了描述。虽然它指的是 IP 地址,但您可以轻松地使用该方法来记录您的唯一请求 ID。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-20
    • 2019-07-06
    • 2015-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多