[問題] 將sys.stdout sys.stderr都導向至一個檔

作者: Cipram (☆★獵豔鞋神★☆)   2016-09-11 01:38:05
我使用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
作者: jaid (jaid)   2016-09-13 15:03:00
頂多就是multithread的時候訊息會混在一起吧
作者: Cipram (☆★獵豔鞋神★☆)   2016-09-19 14:51:00
謝謝,我邊用邊觀察看看~

Links booklink

Contact Us: admin [ a t ] ucptt.com