Coverage for src/fastapi_cloud_cli/logging.py: 100%

14 statements  

« prev     ^ index     » next       coverage.py v7.16.0, created at 2026-11-09 00:25 +0000

1import logging 1abcdefg

2import os 1abcdefg

3 

4from rich.console import Console 1abcdefg

5from rich.logging import RichHandler 1abcdefg

6 

7 

8def setup_logging(terminal_width: int | None = None, level: int | None = None) -> None: 1abcdefg

9 if level is None: 1abcdefg

10 level = ( 1abcdefg

11 logging.DEBUG if os.getenv("FASTAPI_CLOUD_DEBUG") == "1" else logging.INFO 

12 ) 

13 

14 logger = logging.getLogger("fastapi_cloud_cli") 1abcdefg

15 console = Console(width=terminal_width) if terminal_width else None 1abcdefg

16 rich_handler = RichHandler( 1abcdefg

17 show_time=False, 

18 rich_tracebacks=True, 

19 tracebacks_show_locals=True, 

20 markup=True, 

21 show_path=False, 

22 console=console, 

23 ) 

24 rich_handler.setFormatter(logging.Formatter("{message}", style="{")) 1abcdefg

25 logger.addHandler(rich_handler) 1abcdefg

26 

27 logger.setLevel(level) 1abcdefg

28 logger.propagate = False 1abcdefg