GeoAI-Backend / utils /logger.py
Rafs-an09002's picture
sync: backend from GitHub Actions
2b7062a verified
"""
Logger - Logging configuration
"""
import logging
import sys
from datetime import datetime
def setup_logger(name: str = 'geoai', level: str = 'INFO') -> logging.Logger:
"""
Setup application logger
Args:
name: Logger name
level: Logging level (DEBUG/INFO/WARNING/ERROR)
Returns:
logging.Logger: Configured logger
"""
# Create logger
logger = logging.getLogger(name)
# Set level
level_map = {
'DEBUG': logging.DEBUG,
'INFO': logging.INFO,
'WARNING': logging.WARNING,
'ERROR': logging.ERROR
}
logger.setLevel(level_map.get(level.upper(), logging.INFO))
# Clear existing handlers
logger.handlers.clear()
# Create console handler
console_handler = logging.StreamHandler(sys.stdout)
console_handler.setLevel(logging.DEBUG)
# Create formatter
formatter = logging.Formatter(
'%(asctime)s - %(name)s - %(levelname)s - %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
console_handler.setFormatter(formatter)
# Add handler to logger
logger.addHandler(console_handler)
return logger
def get_logger(name: str) -> logging.Logger:
"""
Get or create logger
Args:
name: Logger name
Returns:
logging.Logger: Logger instance
"""
return logging.getLogger(name)