Spaces:
Sleeping
Sleeping
| import logging | |
| import os | |
| from typing import Optional | |
| def set_logger_format(custom_preamble: Optional[str] = ""): | |
| logger = logging.getLogger("codecarbon") | |
| format = "[%(name)s %(levelname)s @ %(asctime)s]" | |
| if custom_preamble: | |
| format += f"[{custom_preamble}]" | |
| format += " %(message)s" | |
| formatter = logging.Formatter(format, datefmt="%H:%M:%S") | |
| handler = logging.StreamHandler() | |
| handler.setFormatter(formatter) | |
| if logger.hasHandlers(): | |
| logger.handlers.clear() | |
| logger.addHandler(handler) | |
| def set_logger_level(level: Optional[str] = None): | |
| if level is None: | |
| lower_envs = {k.lower(): v for k, v in os.environ.items()} | |
| level = lower_envs.get("codecarbon_log_level", "INFO") | |
| logger = logging.getLogger("codecarbon") | |
| if isinstance(level, int): | |
| known_levels_int = {0, 10, 20, 30, 40, 50} | |
| if level not in known_levels_int: | |
| logger.error(f"Unknown int log level: {level}. Doing nothing.") | |
| return | |
| logger.setLevel(level) | |
| return | |
| if isinstance(level, str): | |
| level = level.upper() | |
| known_levels_str = { | |
| "CRITICAL", | |
| "FATAL", | |
| "ERROR", | |
| "WARN", | |
| "WARNING", | |
| "INFO", | |
| "DEBUG", | |
| "NOTSET", | |
| } | |
| if level not in known_levels_str: | |
| logger.error(f"Unknown str log level: {level}. Doing nothing.") | |
| return | |
| logger.setLevel(level) | |
| return | |
| logger.error(f"Unknown log level: {level}. Doing nothing.") | |
| set_logger_format() | |
| set_logger_level() | |
| logger = logging.getLogger("codecarbon") | |
| logger.propagate = False | |