代码之家  ›  专栏  ›  技术社区  ›  SuperBiasedMan Jayesh Kalkani

使用Python的“with open()”编写日志,如何将异常写入日志?

  •  1
  • SuperBiasedMan Jayesh Kalkani  · 技术社区  · 10 年前

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

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

    因此,如果发生异常,它仍将保存所有已写入的文本。

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

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

    1 回复  |  直到 10 年前
        1
  •  2
  •   AChampion    10 年前

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

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

    如果异常是通过尝试写入文件而生成的,那么问题就来了。