將python控制台信息和錯誤信息輸出到日志。
這里設置輸出文件夾為log,把日志的文件名設置為程序運行時間。
首先把在代碼文件中加入以下代碼
import time import os import sys class Logger(object): def __init__(self, stream=sys.stdout): output_dir = "log"
if not os.path.exists(output_dir): os.makedirs(output_dir) log_name = '{}.log'.format(time.strftime('%Y-%m-%d-%H-%M')) filename = os.path.join(output_dir, log_name) self.terminal = stream self.log = open(filename, 'a+') def write(self, message): self.terminal.write(message) self.log.write(message) def flush(self): pass
在主函數第一句加上:
sys.stdout = Logger(sys.stdout) # 將輸出記錄到log sys.stderr = Logger(sys.stderr) # 將錯誤信息記錄到log
這樣程序運行時如果使用了print進行輸出,或者產生錯誤信息,就會自動記錄到log中。
效果如下圖,隨意讓它print了幾個數字:
然后查看log文件夾的文件: