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

看板Python作者 (☆★獵豔鞋神★☆)時間7年前 (2016/09/11 01:38), 7年前編輯推噓0(002)
留言2則, 2人參與, 最新討論串1/1
我使用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
頂多就是multithread的時候訊息會混在一起吧
09/13 15:03, 1F

09/19 14:51, , 2F
謝謝,我邊用邊觀察看看~
09/19 14:51, 2F
文章代碼(AID): #1Nr4K1BG (Python)