import logging from logging.handlers import RotatingFileHandler import os # Create a formatter and set it for the handler formatter = logging.Formatter("%(asctime)s %(levelname)s %(name)s - %(message)s") # Create a rotating file handler file_handler = RotatingFileHandler( "iti-flask.log", encoding="utf-8", maxBytes=10 * 1024 * 1024, backupCount=5 ) file_handler.setLevel(logging.INFO) file_handler.setFormatter(formatter) def setup_logger(name): logger = logging.getLogger(name) if logger.handlers: return logger logger.setLevel(logging.DEBUG) console_handler = logging.StreamHandler() console_handler.setLevel(logging.DEBUG) console_handler.setFormatter(formatter) logger.addHandler(console_handler) # Add the handler to the logger if it hasn't been added yet if os.getenv("FLASK_ENV", "dev") in ["prod", "production"]: logger.addHandler(file_handler) # 防止日志传播到父 logger logger.propagate = False return logger def init_logger(app): if os.getenv("FLASK_ENV", "dev") in ["prod", "production"]: app.logger.addHandler(file_handler)