在 python 中捕获文件中的终端错误

Capturing terminal error on file in python

我想在 .txt 或 .log 文件上打印所有将在终端上打印的内容,尤其是错误。

在此示例中,我在单击按钮时输入了一个错误,并希望将其捕获并打印在文件中。

在这种情况下,已知错误会在单击按钮时发生。但我希望捕获并打印到文件

import tkinter as tk

def on_click():
    # this error is made specifically to explain what I would like to achieve
    print(int("string"))

# Create the window
win = tk.Tk()
win.geometry("500x300")
win.title("window")

# Create the button
tk.Button(win, text="Button", command=on_click).pack()

if __name__ == "__main__":
    win.mainloop()

照片中的这个是我想捕获的错误示例

为了理解,试试这样:

import logging

#option 1
logging.basicConfig(filename='log2.txt',filemode='a',format='%(asctime)s - %(message)s', level=logging.ERROR)

#option 2
def log_error(message):
    with open("log.txt", "a+") as myfile:
        myfile.write(f'ERROR : {message} \n')

try:
    1/0
except Exception as e:
    log_error(e)
    logging.error("Exception occurred", exc_info=True)

您可以在 运行 脚本时使用文件描述符 2 重定向文件中的错误。

python script.py 2> error.txt