我正在尝试在视图的Django(mod_wsgi)中进行一些日志记录。但是我希望这样做,以便客户端不会像mod_perl中提供的perlcleanuphandler阶段一样。注意“它用于在请求被提供后立即执行某些代码(客户端离开)”行。这正是我想要的。
我希望客户端得到服务,然后我想进行日志记录。 mod_wsgi或Django中的代码有一个很好的插入点吗?我查看了建议here和here。但是,在这两种情况下,当我放置一个简单的time.sleep(10)
并在网址上执行curl / wget时,卷曲不会返回10秒。
我甚至尝试在其中一条评论中建议的时候在HttpResponse对象的__del__
方法中放置time.sleep,但仍然没有骰子。
我知道我可能会将日志记录数据放到队列中并进行一些背景处理以存储日志,但如果还有其他更简单/更简单的方法,我想避免使用这种方法。
有什么建议吗?
答案 0 :(得分:0)
请参阅以下文档:
http://code.google.com/p/modwsgi/wiki/RegisteringCleanupCode
用于特定于WSGI(不是特定于mod_wsgi)的方式。
其他人指出的Django可能也有自己的处理方式,尽管在将所有响应内容写回客户端之后是否会被解雇,我不知道。