django tracer为每个请求生成和使用uuid提供了一种简单的方法。

django-tracer的Python项目详细描述


django跟踪器

Build Status

为所有对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问题。如果您爱我们,并想了解我们的动态,可以在这里在线找到我们:

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
swing Java按钮/网格布局   java列出Google日历中的所有事件   java无效:单击API publisher test按钮后连接到后端时出错   带有内部赋值的java While循环导致checkstyle错误   java为什么trimToSize/ensureCapacity方法提供“公共”级访问?   文件输出流的java问题   ListIterator和并发修改异常的java问题   java如何使用两个URL映射   无法识别使用“./../”构造的字符串java相对路径,为什么?   首次写入remotelyclosedsocket不会触发异常,对吗?JAVA   java OneDrive REST API为文件上载提供了400个无效谓词   Java泛型、集合接口和对象类的问题   OpenSSL Java安全提供程序   jmeter java运行jmx禁用操作