2
如何使用日誌記錄模塊重新定義標準輸出和標準輸出以單獨記錄文件?例如stderr.log和stdout.log文件?如何重新定義標準輸出和標準輸出到單獨的日誌?
如何使用日誌記錄模塊重新定義標準輸出和標準輸出以單獨記錄文件?例如stderr.log和stdout.log文件?如何重新定義標準輸出和標準輸出到單獨的日誌?
你可以簡單地用定製類文件對象代替sys.stdout
和sys.stderr
:
import sys
sys.stdout = open('stdout.log', 'a')
sys.stderr = open('stderr.log', 'a')
要撤消:
sys.stdout = sys.__stdout__
sys.stderr = sys.__stderr__
欲瞭解更多信息,請閱讀sys
module documentation。
import sys
class OutDevice():
def write(self, s):
# do whatever
pass
class ErrDevice():
def write(self, s):
# do whatever
pass
sys.stdout = OutDevice()
sys.stdout = ErrDevice()
# to restore
sys.stdout = sys.__stdout__
sys.stderr = sys.__stderr__
是否要將'sys.stdout','sys.stderr'重定向到文件或是否想借助'logging'模塊生成的消息轉到文件? – jfs 2012-02-03 15:54:39