当客户端不是 Web 浏览器时捕获 Django 错误?
我正在构建一个从应用程序调用的 Django Web 服务。当它抛出异常时,我看不到 Django 调试页面,也无法访问它,因为调用应用程序的行为不像 Web 浏览器(而且我无法控制该应用程序)。
有没有办法将 Django 错误页面重定向到日志文件而不是调用客户端,可能通过更改 FastCGI 配置(我正在使用 lighty + FastCGI)?或者可能是框架本身内的“转储到文件”配置选项或某种 LogExceptionToFile() 方法?
I'm building a Django web service that is called from an application. When it throws an exception, I can't see the Django debug page, and can't get to it because the calling application doesn't behave like a web browser (and I don't have control over that application).
Is there a way to redirect the Django error page to a a log file rather than to the calling client, possibly via changing the FastCGI config (I'm using lighty + FastCGI)? Or maybe a "dump to file" config option or some sort of LogExceptionToFile() method within the framework itself?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以尝试仅创建自定义 ExceptionMiddleware。只需更改 process_exception 方法即可记录异常并在某处请求数据。
这是一个示例: http://www.peterbe .com/plog/who-was-logged-in-during-a-django-exception
You might try just creating custom ExceptionMiddleware. Just change the process_exception method to log the exception and request data somewhere.
Here's an example: http://www.peterbe.com/plog/who-was-logged-in-during-a-django-exception
如果django应用程序中的异常没有被捕获,并且
DEBUG = True
,那么异常应该被发送到客户端。一些帮助您获取调试信息的选项:
If the exception in the django app is not caught, and
DEBUG = True
, then the exception should be sent to the client.Some options to help you get debugging info: