python控制台信息输出到日志
将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文件夹的文件: