django tracer为每个请求生成和使用uuid提供了一种简单的方法。
django-tracer的Python项目详细描述
django跟踪器
为所有对django的请求生成一个uuid,用于日志记录和错误报告以实现可跟踪性。
为什么?
你为什么要用这个愚蠢的小东西?好吧,在一个集权日志记录的容器化、精心安排的微服务世界里,往往很难找出哪里出了问题。
这个小中间件向普通的django请求对象添加一个uuid,您可以使用它来添加如下内容:
- 所有日志消息
- 错误报告给Sentry/Rollbar/etc
- 传递给其他内部服务部门
除了生成uuid并将其附加到每个请求之外,中间件还自动将uuid作为X-Request-ID
添加到响应头中,因此任何使用您的响应(例如作为api)的人都可以将其用作向您报告错误的参考点。
安装
首先,您需要通过pip安装它:
pip install django-tracer
然后在您的设置中将tracer
添加到INSTALLED_APPS
。
然后将tracer.middleware.RequestID
添加到MIDDLEWARE
设置的顶部。
与标准日志一起使用
importloggingfromdjango.httpimportHttpResponselogger=logging.getLogger(__name__)defsome_view(request):""" simple log example """logger.info("Whee!",extra={'request_id':request.id})returnHttpResponse("example content")
使用此请求ID的其他方法
您还可以考虑在其他几个地方使用id来提高可追溯性:
- 将它作为参数传递给您生成的任何芹菜任务,以便在传入请求和从它生成的任务之间有一个清晰的路径
- 将其作为头或参数传递给其他内部API或服务
- 将它附加到绑定的structlog对象,以便它始终包含在日志输出中
谢谢!
特别感谢Rolf Håvard Blindheim慷慨地将名称django-tracer
交给我们,使我们能够将其用于此项目。
需要帮助吗?
REVSYS可以帮助您完成python、django和基础设施项目。如果您对这个项目有疑问,请打开一个github问题。如果您爱我们,并想了解我们的动态,可以在这里在线找到我们: