Coverage for app / core / logging.py: 100%
11 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-05 17:54 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-05-05 17:54 +0000
1import logging
2import sys
4from app.core.config import settings
6def setup_logging() -> None:
7 """Configure basic structured logging for the application."""
9 # Set log level based on environment
10 log_level = logging.DEBUG if settings.environment == "development" else logging.INFO
12 # Configure the root logger
13 logging.basicConfig(
14 stream=sys.stdout,
15 level=log_level,
16 format="%(asctime)s - [%(levelname)s] - %(name)s: %(message)s",
17 datefmt="%Y-%m-%d %H:%M:%S",
18 )
20 # Silence chatty third-party libraries
21 logging.getLogger("httpx").setLevel(logging.WARNING)
22 logging.getLogger("httpcore").setLevel(logging.WARNING)
24 # Adjust SQLAlchemy logging based on environment
25 sqlalchemy_level = logging.INFO if settings.environment == "development" else logging.WARNING
26 logging.getLogger("sqlalchemy.engine").setLevel(sqlalchemy_level)
28 # Celery worker logs
29 logging.getLogger("celery").setLevel(logging.INFO)