【问题标题】:Using Python's 'with open()' To Write a Log, How Can I Write Exceptions to my Log?使用 Python 的 'with open()' 写日志,如何将异常写入日志?
【发布时间】:2015-06-04 21:49:20
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: python exception-handling with-statement


    【解决方案1】:

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

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

    如果异常是通过尝试写入文件而生成的,挑战就来了。

    【讨论】:

    • 这是有道理的,我原本希望在第一行添加一些简洁的语法,但这会给函数加载很多内容。写入文件抛出异常至少是一个非常明显的问题。这是我正在编写供其他人使用的脚本,我担心会出现错误,他们无法向我解释发生了什么,如果我不添加此代码,日志也不会有记录。
    猜你喜欢
    • 2014-12-13
    • 1970-01-01
    • 2022-07-06
    • 2018-09-04
    • 2010-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多