3

如何记录 Django 服务器处理的请求和响应?

我有一个 Django 服务器应用程序有表和关系。许多表通过多个 API 端点公开。还有几个自定义函数接受带有参数的 GET/POST 请求并在 python 中运行一个函数并返回一个结果。

作为服务器管理员,我想记录每个请求的所有传入请求和传出响应。对我来说,捕获每个请求生成的 GET/POST 参数以及每个响应发出的数据对我来说很重要。什么是我实现这一点的最佳方式?

4

2 回答 2

1

我建议您不要通过 Django 执行此操作,您要做的就是添加请求工作负载。你会让你的应用程序变慢,这样你就可以把它放在“一个地方”,记住,“适合工作的工具”。

我强烈建议您登录到标准记录器文件/syslog,然后使用 GrayLog/Loggly/Splunk/Logstash/etc 之类的东西。——从长远来看,你会感谢我,你不会把你的 Django 服务器和/或数据库磨到地上。

如果您认为我在开玩笑,请想一想:您更有可能将其放入中间件中,对吧?在授权之前,对吧?如果我想让你的生活变成一个活生生的地狱,我所要做的就是 while true; do curl https://yourdomain.com/doesnt-need-to-exist &; done 在几天内填满你的数据库,更不用说降低你的整体服务了。帮大家一个忙,不要使用数据库,特别是一个产品数据库来存储日志

于 2020-08-14T19:39:05.553 回答
0

django-wiretap是一个包,它通过模型将请求和响应存储在数据库中。

于 2016-04-29T09:05:07.413 回答