python项目,print方法的日志收集
import sys
import time
import threading
import datetime
import os
class Logger(object):
def __init__(self, logf):
self.logf = logf
self.terminal = sys.stdout
sys.stdout = self
self.log = open(self.logf, 'a+')
self.previousMsg = None
def write(self, message):
if self.previousMsg == None or "\n" in self.previousMsg:
topMsg = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f") + " : "
self.terminal.write(topMsg)
self.log.write(topMsg)
if isinstance(message, str):
self.previousMsg = message
if self.previousMsg == None:
self.previousMsg = ""
self.terminal.write(message)
self.log.write(message)
def flush(self):
self.log.flush()
def threading_log(log, wait=5):
while 1== 1:
time.sleep(wait)
log.flush()