当前位置: 首页 > 面试题库 >

如何让Django将调试信息打印到控制台?

瞿宏儒
2023-03-14
问题内容

我使用urlib打我的应用程序而不是浏览器,所以发生错误时我看不到调试屏幕。将常规调试信息发送到控制台或文件的最佳方法是什么?

编辑:我已经捕获了页面的输出,但是当我将其打印到屏幕上时,它充满了无用的html吨。我可以得到错误吗?


问题答案:

我建议使用以下使用内置日志记录系统的方法之一。

以类似的方式将异常通过管道传递到管理员电子邮件处理程序,你可以将数据发送到控制台记录器,文件记录器或其他任何地方(仅此邮件,或者除电子邮件处理程序之外)。

好吧,最简单的方法是将调试模式设置为OFF,然后让django通过电子邮件将错误信息发送给你,因为这实际上需要5秒钟:http : //docs.djangoproject.com/en/dev/howto/error-reporting/

否则,我会编写一个记录异常的中间件,但是如果你想要堆栈跟踪,那会有些麻烦。这是文档。

import traceback
import sys
from __future__ import print_function

class ProcessExceptionMiddleware(object):
    def process_exception(self, request, exception):
        # Just print the exception object to stdout
        print(exception)

        # Print the familiar Python-style traceback to stderr
        traceback.print_exc()

        # Write the traceback to a file or similar
        myfile.write(''.join(traceback.format_exception(*sys.exc_info())))


 类似资料:
  • Erlang的(v.19)ftp客户端将所有内容跟踪到控制台,包括接收到的文件的完整内容。我使用默认选项打开会话(verbose为false等) 例如, {: ok, pid}=:inets.start(: ftpc, host: String.to_charlist(v.host)) --ctrl#端口

  • 这是@MatthewD的问题“如何写入Netbeans调试器控制台(Java)”的后续问题 对于NetBeans断点,可以分别使用、和打印行号、类名和线程名。方法名称是否也有类似的表达式? 我测试了和,搜索了NetBeans JPDA API和NetBeans Wiki,但没有找到任何结果。我宁愿在断点的属性中编写,而不是名称本身,因为名称不能被复制粘贴或用作模板。

  • 你可以使用printf将消息打印到控制台,从而知道应用程序是如何运行的。这是调试代码的很有用的手段,因为你可以打印变量的值、知道什么时候代码将阻塞等等。 我们尝试使用函数unsigned char leds_get(void);打印LED的状态。 获取LED的状态,并将其打印到屏幕。修改test-leds.c如下: #include "contiki.h" #include "dev/leds.h

  • 在航站楼如何做到这一点?

  • 我将log4j用于日志。 我有一个类只想打印到控制台的log.info级别, 并打印到一些文件log.info+log.debug级别(同一个类)。 我尝试按以下方式设置log4j.xml: 这是我的配置,但我不能使用相同包名的2个记录器。 有什么建议吗? 谢谢, 或者。

  • 打印是不属于 JavaScript 语言标准的功能。但是,我们在这里进行的所有操作,浏览器和 Node.js 都是支持的。 打印意味着“在控制台上显示内容”,其中“控制台”是浏览器控制台或运行 Node.js 的终端。 完整的console.* API 在 MDN 的网页 以及 Node.js 官网都有相关文档。接下来我们将快速浏览以下两个操作: console.log() console.err