在python 2.7中将日志和意外错误记录到输出文件的最佳方法是什么?目前我一起使用 logging 模块和 sys.stderr 以这种方式创建日志文件(来自日志模块的日志被定向到stderr,以便记录编程日志和意外输出文件中的错误)。
但问题是,如果应用程序抛出意外错误,查看这些意外错误的唯一方法是 - 关闭打开的GUI窗口然后然后只将这些意外错误记录到日志文件中。有没有办法在不退出申请的情况下完成这项工作?
下面的脚本演示了这个问题:
import sys, logging
from Tkinter import *
sys.stderr = open('log.txt', 'w') # directs logs and errors from terminal into log.txt
logging.basicConfig( level=logging.DEBUG, format='%(asctime)s %(name)-14s %(levelname)-8s %(message)s')
gui_log = logging.getLogger('gui')
gui_log.info('This will go into log.txt') # log will be directed to stdout
def browse(b): # this function will throw an (unexpected!) error
a = b + 1
# gui window that will throw an unexpected error when button is clicked
app = Tk()
app.title("DemoLimo")
app.geometry("")
button_seq = Button(app, text = 'Select file', bg = 'red', command = browse)
button_seq.pack()
app.mainloop()
注意:理想情况下,我想将编程日志和意外错误记录到输出文件中。如果你对这种情况有更好的处理,我欢迎你的想法!