import logging import os from logging.handlers import RotatingFileHandler from setting import LOG_FILE, LOG_LEVEL, LOG_FORMAT, LOG_DIR class PPLogger(logging.Logger): def __init__(self, name, level=logging.NOTSET): super().__init__(name, level) def setup_logger(self, log_file=LOG_FILE, log_level=LOG_LEVEL, log_format=None, max_bytes=5 * 1024 * 1024, backup_count=5): # 设置日志格式 if log_format is None: log_format = LOG_FORMAT formatter = logging.Formatter(log_format) # 设置日志级别 self.setLevel(log_level) # 创建日志目录 log_dir = LOG_DIR if not os.path.exists(log_dir): os.makedirs(log_dir) # 日志文件的路径 log_path = os.path.join(log_dir, log_file) # 创建文件处理器 file_handler = RotatingFileHandler(log_path, maxBytes=max_bytes, backupCount=backup_count) file_handler.setLevel(log_level) file_handler.setFormatter(formatter) # 添加处理器到日志器 self.addHandler(file_handler) # 创建控制台处理器,并设置级别 console_handler = logging.StreamHandler() console_handler.setLevel(log_level) console_handler.setFormatter(formatter) # 添加处理器到logger self.addHandler(console_handler)