Spaces:
Running
on
Zero
Running
on
Zero
| import os | |
| from dotenv import load_dotenv, find_dotenv | |
| load_dotenv(find_dotenv()) | |
| # logger_config.py | |
| import logging | |
| from logging.handlers import RotatingFileHandler | |
| import os | |
| # from nemo.utils.nemo_logging import Logger | |
| # nemo_logger = Logger() | |
| # nemo_logger.remove_stream_handlers() | |
| DEBUG = os.getenv("DEBUG", "false").lower() == "true" | |
| print(DEBUG) | |
| # Create "logs" directory if it doesn't exist | |
| os.makedirs("logs", exist_ok=True) | |
| logger = logging.getLogger("app_logger") # unique name | |
| logger.setLevel(logging.DEBUG if DEBUG else logging.INFO) | |
| # Avoid duplicate handlers | |
| if not logger.handlers: | |
| formatter = logging.Formatter("%(asctime)s | %(levelname)s | %(module)s | %(message)s") | |
| # Console handler | |
| console_handler = logging.StreamHandler() | |
| console_handler.setLevel(logging.DEBUG if DEBUG else logging.INFO) | |
| console_handler.setFormatter(formatter) | |
| logger.addHandler(console_handler) | |
| # File handler | |
| file_handler = RotatingFileHandler("logs/app.log", maxBytes=2 * 1024 * 1024, backupCount=5) | |
| file_handler.setLevel(logging.DEBUG if DEBUG else logging.INFO) | |
| file_handler.setFormatter(formatter) | |
| logger.addHandler(file_handler) | |
| # Startup message | |
| logger.debug("Logger initialized (DEBUG)") if DEBUG else logger.info("Logger initialized (Production Mode)") | |
| # --- Logger Silencing Function --- | |
| def silence_logger(logger_name: str | None, level=logging.ERROR): | |
| """Sets the log level and removes StreamHandlers for a given logger.""" | |
| target_logger = logging.getLogger(logger_name) | |
| target_logger.setLevel(level) | |
| for handler in target_logger.handlers[:]: | |
| if isinstance(handler, logging.StreamHandler): | |
| target_logger.removeHandler(handler) | |
| # Ensure messages don't propagate to the parent (root) logger | |
| target_logger.propagate = False | |
| # silence_logger(None, logging.CRITICAL) | |
| # logger.propagate = True | |
| # silence_logger("nemo_logger", logging.CRITICAL) | |
| # silence_logger("pytorch_lightning", logging.ERROR) | |