File size: 945 Bytes
74de430
 
 
 
 
 
 
5dcb32d
 
74de430
 
5dcb32d
 
74de430
 
5dcb32d
 
74de430
 
08ec64b
 
 
 
 
 
74de430
 
 
 
 
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
"""
Structured Logging Configuration
"""
import logging
import sys
from app.config import settings

# Configure logging format with ISO 8601 timestamp
# Format: LEVEL: YYYY-MM-DDTHH:MM:SS.sssZ - logger_name: message
logging.basicConfig(
    level=logging.DEBUG if settings.DEBUG else logging.INFO,
    format="%(levelname)s: %(asctime)s - %(name)s: %(message)s",
    datefmt="%Y-%m-%dT%H:%M:%S",
    handlers=[
        logging.StreamHandler(sys.stdout)
    ],
    force=True  # Override any existing basicConfig calls
)

# Suppress verbose third-party loggers for security and cleaner logs
# Only show warnings and errors from these libraries during startup
logging.getLogger("httpx").setLevel(logging.WARNING)
logging.getLogger("httpcore").setLevel(logging.WARNING)
logging.getLogger("urllib3").setLevel(logging.WARNING)

def get_logger(name: str) -> logging.Logger:
    """
    Get a logger instance
    """
    return logging.getLogger(name)