feat: Implement logging functionality; add logger configuration and retrieval
This commit is contained in:
		
							
								
								
									
										42
									
								
								objects/logger.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								objects/logger.py
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
import logging
 | 
			
		||||
import os
 | 
			
		||||
from logging.handlers import RotatingFileHandler
 | 
			
		||||
 | 
			
		||||
# Configuration values
 | 
			
		||||
LOG_LEVEL = os.getenv("LOG_LEVEL", "INFO").upper()
 | 
			
		||||
LOG_FORMAT = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
 | 
			
		||||
LOG_DIR = os.getenv("LOG_DIR", os.path.join(os.getcwd(), "logs"))
 | 
			
		||||
 | 
			
		||||
# Ensure log directory exists
 | 
			
		||||
os.makedirs(LOG_DIR, exist_ok=True)
 | 
			
		||||
 | 
			
		||||
# Log file path
 | 
			
		||||
LOG_FILE = os.path.join(LOG_DIR, "app.log")
 | 
			
		||||
 | 
			
		||||
# Create root logger
 | 
			
		||||
logger = logging.getLogger("gpt-agent")
 | 
			
		||||
logger.setLevel(LOG_LEVEL)
 | 
			
		||||
 | 
			
		||||
# Formatter
 | 
			
		||||
formatter = logging.Formatter(LOG_FORMAT)
 | 
			
		||||
 | 
			
		||||
# Console handler
 | 
			
		||||
console_handler = logging.StreamHandler()
 | 
			
		||||
console_handler.setLevel(LOG_LEVEL)
 | 
			
		||||
console_handler.setFormatter(formatter)
 | 
			
		||||
logger.addHandler(console_handler)
 | 
			
		||||
 | 
			
		||||
# Rotating file handler
 | 
			
		||||
file_handler = RotatingFileHandler(LOG_FILE, maxBytes=5*1024*1024, backupCount=5)
 | 
			
		||||
file_handler.setLevel(LOG_LEVEL)
 | 
			
		||||
file_handler.setFormatter(formatter)
 | 
			
		||||
logger.addHandler(file_handler)
 | 
			
		||||
 | 
			
		||||
def get_logger(name: str | None = None) -> logging.Logger:
 | 
			
		||||
    """
 | 
			
		||||
    Retrieve a configured logger instance. If name is provided,
 | 
			
		||||
    returns a child logger of the configured root logger.
 | 
			
		||||
    """
 | 
			
		||||
    if name:
 | 
			
		||||
        return logger.getChild(name)
 | 
			
		||||
    return logger
 | 
			
		||||
		Reference in New Issue
	
	Block a user