[问题] 将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