Spaces:
Sleeping
Sleeping
File size: 1,424 Bytes
697c967 |
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 |
import logging
import sys
from typing import Optional
from config.settings import settings
def setup_logging(
log_level: Optional[str] = None,
log_format: Optional[str] = None
) -> logging.Logger:
"""
Set up logging configuration for the application.
Args:
log_level: Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
log_format: Custom log format string
Returns:
Configured logger instance
"""
# Determine log level from settings or use provided value
level = log_level or ("DEBUG" if settings.debug else "INFO")
level = getattr(logging, level.upper())
# Default log format
if log_format is None:
log_format = "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
# Configure the root logger
logging.basicConfig(
level=level,
format=log_format,
handlers=[
logging.StreamHandler(sys.stdout), # Log to stdout
]
)
# Create and return a logger for the application
logger = logging.getLogger("todo_api")
logger.setLevel(level)
return logger
def get_logger(name: str) -> logging.Logger:
"""
Get a named logger instance.
Args:
name: Name for the logger
Returns:
Logger instance with the specified name
"""
return logging.getLogger(f"todo_api.{name}")
# Create a default logger for the application
logger = setup_logging() |