通过logging模块,重写一个logging2模块,独立开启线程,将待写的日志信息异步放入队列,做到日志输出不影响主流程性能,环境python3.8
logging2.py
importos
importthreading
importqueue
importtime
importdatetime
importlogging
fromlogging.handlers importRotatingFileHandler
classlogging2(threading.Thread):
AQueue =queue.Queue(100000)
nPID =os.getpid()
Adt =datetime.datetime.now().strftime('%Y%m%d')
nCount =1
def__init__(self, threadID, name, module, logLevel):
threading.Thread.__init__(self)
self.threadID =threadID
self.name =name
self.module =module
print("set loglevel: [%s]"%(logLevel) )
formatter =logging.Formatter('%(asctime)s|%(name)s|%(process)d|%(levelname)s|%(message)s')
logfile ="log_"+self.module +"_"