python - 使用Python的 'with open()'写日志,如何将异常写入日志?

标签 python exception with-statement

我正在为在命令窗口中运行的 python 脚本设置一个日志文件,以便记录脚本的所有输入和输出。我正在使用:

with open("file.txt") as file:

这样,如果发生异常,它仍然会保存所写入的所有文本。

但是我想知道是否有办法让它也记录异常?基本上是写最后一条消息,然后关闭文件作为退出函数?

关于 open() 本身似乎只有一点文档。但我不确定这是否意味着它的使用受到限制。

最佳答案

为什么不显式捕获异常并重新抛出它:

with open("file.txt") as file:
    try:
        <do_something>
    except Exception as e:
        file.write(e)
        raise

如果异常是通过尝试写入文件生成的,那么挑战就会出现。

关于python - 使用Python的 'with open()'写日志,如何将异常写入日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29370618/

相关文章:

python - 限制打印输出

python - Travis 的 Numpy 依赖关系问题

python - 为什么 'ord' 在这里被视为未分配的变量?

java - Try、catch 和异常处理

Visual Basic 关键字 : 'With' . .. 'End With' 的 C# 等价物?

python - 使用 Pyramid、nginx、X-Accel-Redirect Header 提供 pdf 作为下载

java - SpringMVC 处理剩余 Controller 中的错误

c++ - 如果存在内存分配错误,请从 mex 文件中正常退出

python - 如何从Python中的其他作用域访问 `with` -context?

python - 没有 "with"关键字的 "as"语句的含义