[問題] 將sys.stdout sys.stderr都導向至一個檔
我使用python 2.7,
想把print跟exception的訊息都寫入同一個檔案,
目前所有的exception都利用寫在except clause中的traceback.print_exc()印出,
於是參考網路寫了code如下,
目前測試正常。
想請教,是否有什麼潛在的風險?
例如特定情況下會漏掉什麼print or exception的訊息,
如一些用C library實作的功能,
或是某些function已overwrite掉一般的file引數,
由於感覺這較底層,
我的概念還不清楚,
想請教大家的看法,
感謝!
import sys
import traceback
f = open('log', 'w')
sys.stdout = f
sys.stderr = f
print 1
try:
print 2
raise ValueError
except:
print 3
traceback.print_exc()
print 4
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.216.25.228
※ 文章網址: https://www.ptt.cc/bbs/Python/M.1473529089.A.2D0.html
※ 編輯: Cipram (61.216.25.228), 09/11/2016 01:39:36
→
09/13 15:03, , 1F
09/13 15:03, 1F
→
09/19 14:51, , 2F
09/19 14:51, 2F