在Python中记录日志文件中的日志和意外错误

时间:2014-12-15 17:53:22

标签: python logging tkinter stderr error-logging

在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()

注意:理想情况下,我想将编程日志和意外错误记录到输出文件中。如果你对这种情况有更好的处理,我欢迎你的想法!

0 个答案:

没有答案