import logging from logging.handlers import RotatingFileHandler import os import sys class Log(object): def __init__(self, log_path="./logs", stdout_log_level=logging.DEBUG, fil_log_level=logging.WARN, log_name: str = "V"): # self.log_level = stdout_log_level self.logger = logging.getLogger(log_name) self.logger.setLevel(stdout_log_level) self.logPath = log_path if not os.path.exists(self.logPath): os.mkdir(self.logPath) # 创建处理器 self.stdoutHandler = logging.StreamHandler(stream=sys.stdout) self.fileHandler = RotatingFileHandler(filename="%s/log.log" % self.logPath, mode="a", maxBytes=10485760, backupCount=10, encoding="utf-8") # 设置日志级别 self.stdoutHandler.setLevel(stdout_log_level) self.fileHandler.setLevel(fil_log_level) self.fmt = logging.Formatter( "%(name)s: %(asctime)s | %(levelname)s | %(filename)s:%(lineno)s | %(process)d >>> %(message)s" ) # 设置日志格式 self.stdoutHandler.setFormatter(self.fmt) self.fileHandler.setFormatter(self.fmt) # 设置日志处理器 self.logger.addHandler(self.stdoutHandler) self.logger.addHandler(self.fileHandler) def getLogger(self): return self.logger