如何记录Django的请求和响应?

3
如何记录Django服务器处理的请求和响应?
我有一个Django服务器应用程序,其中包含表和关系。许多表格通过多个API端点公开。还有几个自定义函数,接受带参数的GET / POST请求,并在Python中运行函数并返回结果。
作为服务器管理员,我想记录所有传入请求和每个请求的传出响应。对我来说,捕获每个请求使用的GET / POST参数以及每个响应发送的数据至关重要。我应该如何实现这一点?
2个回答

1
我建议你不要通过Django来实现这个功能,因为这样只会增加请求的工作量。你会让应用变慢,只是为了把它放在“一个地方”,记住,“适合工作的正确工具”。
我强烈建议你记录到标准的日志文件/syslog中,然后使用类似GrayLog/Loggly/Splunk/Logstash等工具。从长远来看,你会感谢我的,你不会使你的Django服务器和/或数据库崩溃。
如果你认为我在开玩笑,请想一想:你更有可能把它放在一个中间件里面,对吧?在auth之前,对吧?如果我想让你的生活成为地狱,我所要做的就是while true; do curl https://yourdomain.com/doesnt-need-to-exist &; done。我会在几天内填满你的数据库,更不用说整个服务的退化了。请为大家着想,不要使用数据库,特别是生产数据库来存储日志。

0

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接