import sys from loguru import logger as _logger _handler_id = None def set_log_level(level: str | int) -> None: """ Set the log level for gemini_webapi. The default log level is "INFO". Note: calling this function for the first time will globally remove all existing loguru handlers. To avoid this, you may want to set logging behaviors directly with loguru. Parameters ---------- level : `str | int` Log level: "TRACE", "DEBUG", "INFO", "WARNING", "ERROR", "CRITICAL" Examples -------- >>> from gemini_webapi import set_log_level >>> set_log_level("DEBUG") # Show debug messages >>> set_log_level("ERROR") # Only show errors """ global _handler_id _logger.remove(_handler_id) _handler_id = _logger.add( sys.stderr, level=level, filter=lambda record: record["extra"].get("name") == "gemini_webapi", ) logger = _logger.bind(name="gemini_webapi")