作者Cipram (☆★猎艳鞋神★☆)
看板Python
标题[问题] 将sys.stdout sys.stderr都导向至一个档
时间Sun Sep 11 01:38:05 2016
我使用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://webptt.com/cn.aspx?n=bbs/Python/M.1473529089.A.2D0.html
※ 编辑: Cipram (61.216.25.228), 09/11/2016 01:39:36
1F:→ jaid: 顶多就是multithread的时候讯息会混在一起吧 09/13 15:03
2F:→ Cipram: 谢谢,我边用边观察看看~ 09/19 14:51