django-tracer 为您提供了一种简单的方法,为每个请求生成并使用一个UUID
项目描述
django-tracer
为所有Django请求生成一个UUID,用于日志记录和错误报告,以实现可追溯性。
为什么?
您为什么想使用这个小小的东西呢?好吧,在一个容器化、编排、微服务世界中,特别是有集中式日志的情况下,往往很难弄清楚事情出错的地方。
这个小小的中间件会将UUID添加到正常的Django请求对象中,您可以使用它来添加到以下内容:
- 所有日志消息
- 错误报告到Sentry/Rollbar等
- 传递给其他内部服务
除了生成和附加UUID外,中间件还自动将UUID添加到响应头中,作为X-Request-ID
,这样任何消费您响应的人,比如作为API,都可以用它作为错误报告的参考点。
安装
首先,您需要通过pip安装它
pip install django-tracer
然后将tracer
添加到设置中的INSTALLED_APPS
然后将tracer.middleware.RequestID
添加到设置中的MIDDLEWARE
顶部
与标准日志的使用
import logging
from django.http import HttpResponse
logger = logging.getLogger(__name__)
def some_view(request):
""" simple log example """
logger.info("Whee!", extra={'request_id': request.id})
return HttpResponse("example content")
使用请求ID的其他方法
您可能还想在几个其他地方使用ID以提高可追溯性
- 将其作为参数传递给您生成的任何Celery任务,以便在传入请求和从它生成的任务之间建立清晰的路径
- 将其作为头部或参数传递给其他内部API或服务
- 将其附加到绑定的 structlog 对象,以确保它在日志输出中始终包含
谢谢!
特别感谢 Rolf Håvard Blindheim,他慷慨地将名称 django-tracer
转让我们,使我们能够将其用于此项目。
需要帮助吗?
REVSYS 可以为您的 Python、Django 和基础设施项目提供帮助。如果您对此项目有任何问题,请打开 GitHub 问题。如果您喜欢我们并想跟踪我们的动态,这里就是您可以在网上找到我们的地方
项目详情
关闭
django-tracer-0.9.3.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 1f1b6dc228a45992b0df966cf348208e30254ecf3c188641fbb3671b90698374 |
|
MD5 | 1822c275a56d563cb8901823be2738bc |
|
BLAKE2b-256 | de9b48f604ba67aa0ef4bc118ae573a934682264f3c86d61aef1a682173bdc35 |