在Python中存储http请求的跟踪

2024-04-29 11:09:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想存储python代码的踪迹,它被执行来处理http请求。在

我们使用Python和Django。在

在这种情况下,什么是痕迹?在

我希望所有跟踪的http请求都有这个:

  • 在请求.META你说
  • 在请求.POST在
  • 在请求.GET在

对于每个跟踪,都有N次代码执行的stacktrace。在第一步中,将众所周知的python回溯存储为字符串就足够了。在第一步中,不需要存储变量的值。在

stacktrace可以由一个主管线程创建,也可以通过源代码中的方法调用显式创建。在第一步显式就足够了,主管线程可以稍后再做。在

跟踪是可选的,仅用于调试和分析。不需要它们来处理http请求。在

如何解决这个问题?在

有什么东西不明白这个问题吗?如果是,请留言。在

更新

  • 我想实现什么?我想有一个更好的方法来调试生产系统中的错误。我想看看发生错误之前发生了什么。在
  • 所有http请求?我想我想每分钟存储一个跟踪。我想我会在N周后删除这些数据。在

Tags: django方法代码httpget错误情况post
3条回答

已从评论中删除

{a1是一个专门的错误解决方案。它也有一种手动记录raven客户端数据的方法。在

有两种方法可以让你随心所欲。一种叫做“跟踪”,另一种叫做“记录”。在

跟踪意味着您有一些软件(比如^{} module),它允许您创建统计信息—哪些方法被调用的频率、方法参数是什么、谁调用了谁等等

使用跟踪,您需要配置要跟踪的方法/函数调用。它的设置很快,但不能查看方法/函数的内部。有点傻。在

此外,您还必须编写自己的工具来分析跟踪文件,以了解它们的意义。在

日志记录更加手动。您需要配置一个日志框架,然后在感兴趣的地方调用日志方法。这样就可以看到局部变量。您可以用有用的方式格式化逻辑数据结构等

这意味着日志功能更强大,但需要更多的手动工作来设置。 还需要一些时间来学习如何进行适当的日志记录(不要太多,也不要太少)。但是日志记录已经附带了许多功能强大的工具(日志查看器、日志文件旋转以避免磁盘满)。在

您可以使用中间件来干扰所有请求,然后记录它们。查看Rhumbix/django-request-logging的示例实现。在

相关问题 更多 >