0
我正在使用此代碼將stdout記錄到控制檯和文件。此代碼的作品,將輸出「測試」我的console.log文件。但是,如果我運行我的整個腳本/程序並將writer.close()移動到程序終止的末尾,則我的其他代碼(可能需要分鐘運行)中發生的所有打印都不會寫入日誌文件?這種方法有沒有時間限制?我可以做什麼,以便我可以運行可能運行20分鐘的腳本/程序並將它們都記錄到控制檯和日誌文件中。下面我的例子再次在快速打印上工作得很好,然後關閉作者。但如果我打印幾行幾分鐘,然後去關閉作家我沒有得到任何錯誤,但仍然console.log文件它是空的?長時間寫入控制檯和日誌文件(Python)
Import sys
class MyWriter:
def __init__(self, stdout, filename):
self.stdout = stdout
self.logfile = open(filename, 'a')
def write(self, text):
self.stdout.write(text)
self.logfile.write(text)
def close(self):
self.stdout.close()
self.logfile.close()
def flush(self):
pass
writer = MyWriter(sys.stdout, os.getcwd() + '\\logs\\console.log')
sys.stdout = writer
print("test")
writer.close()
sys.exit()
嘗試'self.stdout.flush()'和'self.logfile.flush()'寫後。 –
那工作:) geez謝謝我從來沒有想到這一點。 –
你可以添加回答,所以我可以打勾 –