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

1import logging 

2import sys 

3 

4from app.core.config import settings 

5 

6def setup_logging() -> None: 

7 """Configure basic structured logging for the application.""" 

8 

9 # Set log level based on environment 

10 log_level = logging.DEBUG if settings.environment == "development" else logging.INFO 

11 

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 ) 

19 

20 # Silence chatty third-party libraries 

21 logging.getLogger("httpx").setLevel(logging.WARNING) 

22 logging.getLogger("httpcore").setLevel(logging.WARNING) 

23 

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) 

27 

28 # Celery worker logs 

29 logging.getLogger("celery").setLevel(logging.INFO)