Spaces:
Running
on
Zero
Running
on
Zero
File size: 2,320 Bytes
b5c329a 11c4a5a b5c329a 11c4a5a b5c329a 62b768a b5c329a |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
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"
# 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 for info, warning, debug logs
file_handler_info = RotatingFileHandler("logs/app.log", maxBytes=2 * 1024 * 1024, backupCount=5)
file_handler_info.setLevel(logging.DEBUG if DEBUG else logging.INFO)
file_handler_info.setFormatter(formatter)
logger.addHandler(file_handler_info)
# File handler for error logs
file_handler_error = RotatingFileHandler("logs/errors.log", maxBytes=2 * 1024 * 1024, backupCount=5)
file_handler_error.setLevel(logging.ERROR)
file_handler_error.setFormatter(formatter)
logger.addHandler(file_handler_error)
# 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)
|