我有一個每分鐘運行一次的python腳本。爲了調試,我想創建帶有錯誤/異常的文本文件,以防發生。如果錯誤不存在,我不需要任何日誌文件。如何將python Errors(stderr)保存到日誌文件中,以防錯誤實際發生?
編輯:我無法將所有的代碼包裝在try/except循環中,所以this沒有幫助。
首先,我節省stderr
爲.txt做:
sys.stderr = open('ERRORS_%s.txt' % (infile), 'a')
with open("%s_Error_Messages.txt" % (MSKSN), "a") as myfile:
myfile.close()
其次,我再嘗試之前的任何raise SystemExit
位置刪除空"%s_Error_Messages.txt" % (MSKSN)
文件,因爲沒有錯誤升高(否則,raise SystemExit
位置不會已達到)。
if os.path.getsize('ERRORS_%s.txt' % (infile)) == 0:
os.remove('ERRORS_%s.txt' % (infile))
我得到的是WindowsError: [Error 32] The process cannot access the file because it is being used by another process
。我認爲這是因爲只要腳本運行,stderr
總是由python.exe使用。
對於第一步,我也試過:
if sys.stderr != 0:
sys.stderr = open('ERRORS_%s.txt' % (infile), 'a')
這是自sys.stderr不工作從來都不是0
如何寫sys.stderr只有在以下情況下爲.txt實際錯誤?
也許你可以使用該模塊此功能'logging'幫你收集的錯誤消息 – xiaoyi