在 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
我想在 .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