欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python 控制台信息同时输出到控制台和log文件

程序员文章站 2022-03-08 16:46:15
...

自定义Logger方式

简单快捷,很简单直接上代码:

# 同时输出到控制台和文件中
import sys
class Logger(object):
    def __init__(self, filename='default.log', stream=sys.stdout):
	    self.terminal = stream
	    self.log = open(filename, 'a')
	# write()函数这样写,每调用一次就写到记录文件中,不需要等待程序运行结束。
    def write(self, message):
        self.terminal.write(message)
        self.terminal.flush()
        self.log.write(message)
        self.log.flush()

    def flush(self):
	    pass

sys.stdout = Logger('output.log', sys.stdout)
sys.stderr = Logger('output.log_file', sys.stderr)		# redirect std err, if necessary

# 下面就可*发挥自己的代码了
print('print something')

注意上面def write(self, message):函数的写法。