import logging import os from logging.handlers import RotatingFileHandler # 创建 logs 文件夹(如果不存在) if not os.path.exists("logs"): os.makedirs("logs") # 日志格式 LOG_FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(filename)s:%(lineno)d - %(message)s" # 日志文件路径 LOG_FILE = "logs/app.log" # 配置日志 def setup_logger(name="app", level=logging.INFO): """ 配置日志记录器 :param name: 日志记录器名称 :param level: 日志级别 :return: 配置好的日志记录器 """ logger = logging.getLogger(name) logger.setLevel(level) # 防止重复添加处理器 if not logger.handlers: # 控制台日志处理器 console_handler = logging.StreamHandler() console_handler.setLevel(level) console_formatter = logging.Formatter(LOG_FORMAT) console_handler.setFormatter(console_formatter) # 文件日志处理器(带日志轮转) file_handler = RotatingFileHandler(LOG_FILE, maxBytes=5 * 1024 * 1024, backupCount=3, encoding="utf-8") file_handler.setLevel(level) file_formatter = logging.Formatter(LOG_FORMAT) file_handler.setFormatter(file_formatter) # 添加处理器到日志记录器 logger.addHandler(console_handler) logger.addHandler(file_handler) return logger # 示例:使用日志记录器 if __name__ == "__main__": logger = setup_logger(level=logging.DEBUG) logger.debug("这是一个调试信息") logger.info("这是一个普通信息") logger.warning("这是一个警告信息") logger.error("这是一个错误信息") logger.critical("这是一个严重错误信息")