跳转到主要内容

为每个请求添加唯一ID以用于日志记录目的

项目描述

License Latest PyPI version Supports Wheel format

为每个请求添加唯一的 request_id 属性并提供请求ID日志辅助工具。

en.ig.ma 软件店 开发和使用。

快速入门

  1. django-request-id 包含在您的 requirements.txt 文件中。

  2. request_id 添加到 INSTALLED_APPS 中(如果您打算使用 {% request_id %} 模板标签,则这是必需的)。

  3. request_id.middleware.RequestIdMiddleware 添加到 Django MIDDLEWARE 设置的最顶部。

  4. 该应用程序通过定义一个将 request_id 变量放入每个日志消息作用域中的过滤器,与标准 Python/Django 日志集成。

    首先,将过滤器定义添加到 Django LOGGING 设置中

    "filters": {
        "request_id": {
            "()": "request_id.logging.RequestIdFilter"
        }
    }

    然后为相关处理程序启用过滤器

    "handlers": {
        "console": {
            ...
            "filters": ["request_id"],
        }
     }

    最后,修改格式化输出格式以包含 %(request_id) 占位符

    "formatters": {
        "console": {
            "format": "%(asctime)s - %(levelname)-5s [%(name)s] request_id=%(request_id)s %(message)s"
        }
    }

    完整的 Django 日志配置示例可能如下所示

    LOGGING= {
        "version": 1,
        "disable_existing_loggers": False,
        "filters": {
            "request_id": {
                "()": "request_id.logging.RequestIdFilter"
            }
        },
        "formatters": {
            "console": {
                "format": "%(asctime)s - %(levelname)-5s [%(name)s] request_id=%(request_id)s %(message)s",
                "datefmt": "%H:%M:%S"
            }
        },
        "handlers": {
            "console": {
                "level": "DEBUG",
                "filters": ["request_id"],
                "class": "logging.StreamHandler",
                "formatter": "console"
            }
        },
        "loggers": {
            "": {
                "level": "DEBUG",
                "handlers": ["console"]
            }
        }
    }
  5. 确保您的 Web 服务器为每个请求添加 X-Request-ID 标头(并在服务器日志中记录它以进一步匹配服务器和应用程序日志条目)。

    如果无法在Web服务器级别生成X-Request-Id头,则只需在项目设置中将,应用程序将自动生成唯一ID值,而不是从wsgi环境中检索它。

    有关服务器配置的更多信息,请参阅server-config

依赖项

无。

文档和演示

完整文档位于http://django-request-id.rtfd.org

还有一个即时演示示例,可以从克隆的存储库运行

python demo.py

在Heroku上查看集成操作

Deply

许可

django-request-id采用MIT许可。

其他资源

商业支持

此应用程序和许多其他应用程序帮助我们构建更好的软件,并专注于更快地交付高质量的项目。我们很乐意帮助您完成下一个项目,所以请通过发送电子邮件至en@ig.ma与我们联系。

历史

1.0.0 (2016-10-23)

  • Django 1.10兼容性

0.1.0 (2014-01-30)

  • 首次发布

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分发

django-request-id-1.0.0.tar.gz (6.6 kB 查看散列)

上传时间

构建分发

django_request_id-1.0.0-py2.py3-none-any.whl (11.8 kB 查看散列)

上传时间 Python 2 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面