willsh1997's picture
:wrench: remove codecarbon install, add slightly modified codecarbon pkg to repo
deb7c43
Raw
History Blame Contribute Delete
1.69 kB
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