【问题标题】:save Exceptions to file in python将异常保存到python中的文件
【发布时间】:2010-12-15 15:41:52
【问题描述】:

我想将以下所有异常保存在一个文件中。我需要这个的原因是因为 Ubuntu 中 python 3.1.1 的 IDLE 在调用提示时引发了一个异常,但接近快速,它不可读。我也需要这个进行测试。最好的情况是,如果我只调用一个将所有异常保存到文件的函数。谢谢! ;)

// 编辑:

我首先寻找了一种更通用的方法!这样您就不必将整个代码放在函数或缩进中。但现在这对我来说效果很好。虽然我还是很感激,如果你能找到办法!

谢谢!

【问题讨论】:

  • 为什么不能从命令行运行脚本并查看那里的输出?
  • 再读一遍!当我尝试使用 STRG + SPACE 显示 calltipp 时,ID(L)E 会中断。我想知道引发了什么类型的异常。
  • 请回答我的问题。你为什么不从命令行运行?你为什么要从 IDLE 中运行?你为什么不在普通的 shell 提示符下运行?
  • 还请回答以下问题:您是否通过双击图标启动 IDLE?您是否尝试过从命令行运行 IDLE 以保留 IDLE 的错误日志?
  • 哦,我刚用命令行打开它,按 STRG+SPACE 通常会得到一个呼叫提示,这很有帮助。现在将错误打印到终端: Traceback(最近一次调用最后一次):文件“/usr/bin/idle-python3.1”,第 5 行,在 main() 文件“/usr/lib/python3. 1/idlelib/PyShell.py",第 1420 行,在 main root.mainloop() 文件中 "/usr/lib/python3.1/tkinter/__init__.py",第 1012 行,在 mainloop 似乎是空闲时的错误-用于 ubuntu 的 python3.1。或者你怎么看? self.tk.mainloop(n) UnicodeDecodeError: 'utf8' codec can't decode bytes in position 0-1: 非法编码

标签: python file ubuntu exception


【解决方案1】:

如果你有一个方便的main() 函数(不管它叫什么),那么你可以使用logging module:

import logging

def main():
    raise Exception("Hey!")

logging.basicConfig(level=logging.DEBUG, filename='/tmp/myapp.log')

try:
    main()
except:
    logging.exception("Oops:")

logging.exception 方便地获取当前异常并将详细信息放入日志中:

ERROR:root:Oops:
Traceback (most recent call last):
  File "C:\foo\foo.py", line 9, in <module>
    main()
  File "C:\foo\foo.py", line 4, in main
    raise Exception("Hey!")
Exception: Hey!

【讨论】:

    猜你喜欢
    • 2020-02-08
    • 1970-01-01
    • 2019-07-28
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多