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

import sys
import os
import sys
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


def make_print_to_file(path='./'):
    '''
     example:
    use  make_print_to_file() ,  and the   all the information of funtion print , will be write in to a log file
    :param path:  the path to save print information
    :return:
    '''


    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

    sys.stdout = Logger(create_detail_day() + '.log', path=path)

    print(create_detail_time().center(60,'*'))



if __name__ == '__main__':
       make_print_to_file(path="/home/log/")
       
        print('explanation'.center(80, '*'))
        info1 = '从大到小排序'
        info2 = ' sort the form large to small'
        print(info1)
        print(info2)
        print('END:  explanation'.center(80, '*'))
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值