python将print输出的信息保留到日志文件中


print与stdout说明参见: https://blog.csdn.net/he_and/article/details/80675070 https://www.jb51.net/article/171015.htm   import sys import os import io import datetime

def create_detail_day():     '''     :return:     '''     # 年-月-日     # daytime = datetime.datetime.now().strftime('day'+'%Y-%m-%d')     # 年_月_日     daytime = datetime.datetime.now().strftime('day'+'%Y_%m_%d')     # 时:分:秒     # hourtime = datetime.datetime.now().strftime("%H:%M:%S")     # hourtime = datetime.datetime.now().strftime('time' + "%H_%M_%S")     detail_time = daytime     # print(daytime + "-" + hourtime)     # detail_time = daytime + "__" + hourtime     return detail_time

class Logger(object):     def __init__(self, filename="Default.log", path="./"):         sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')         self.terminal = sys.stdout         self.log = open(os.path.join(path, filename), "a", encoding='utf8')
    def write(self, message):         self.terminal.write(message)         self.log.write(message)
    def flush(self):         pass

if __name__ == '__main__':     sys.stdout = Logger(create_detail_day() + '.log', path='')     print(create_detail_day().center(60, '*'))     print('explanation'.center(80, '*'))     info1 = '从大到小排序'     info2 = ' sort the form large to small'     print(info1)     print(info2)     print('END: explanation'.center(80, '*'))