所以我们用 django 制作了一个应用程序,它在每次收到请求时都会在控制台上打印所有这些 http 响应消息。
[Date String] 'GET /urlpath/..blah blah ' 200 216
[Date String] 'DELETE /anotherurl/..blah blah ' 200 205
...
..
我们已禁用所有记录器输出。设置调试=假。尝试过“python manage.py runserver --verbosity 0”。甚至尝试将 sys.stdout 更改为 NullDevice() 类。然而,我们似乎无法关闭这些使服务器缓慢运行的响应消息。所有其他消息都被关闭,除了这些。有什么建议么?
我意识到 django 内部网络服务器仅用于开发而不用于生产,但我们希望仅使用开发版本本身就可以获得相当快的速度(而不必深入了解在 Apache 后面部署 django 的复杂性/lighthttpd)。
最佳答案
你可以让控制台日志记录打开,但是用这个小补丁你可以抑制像这样的嘈杂线路
GET /urlpath/..blah blah ' 200 216
...
完全,所有的 HTTP 结果代码 = 200。 在您的站点包或 VirtualEnv(如果您正在使用它)目录中,转到文件夹结构 django/core/servers/basehttp.py
然后转到 类 WSGIRequestHandler, 函数 def log_message(self, format, *args)
之后
# Don't bother logging requests for admin images or the favicon.
if (self.path.startswith(self.admin_media_prefix)
or self.path == '/favicon.ico'):
return
插入
# START ----- Don't show page requests which have run successfully
if args[1] == '200':
return
# END ----- Don't show page requests which have run successfully
这是 Python 2.7.3、Django 1.4.3 的肮脏解决方法,我也对干净的自定义感兴趣:-)
关于python - Django:关闭 http 响应消息的控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6175030/