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文件夹的文件:

 

  

 

posted @ 2020-05-19 18:20  肃木易  阅读(8404)  评论(0编辑  收藏  举报