File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 11import logging
2+ import sys
23from typing import Union
34
45from rich .console import Console
@@ -9,17 +10,21 @@ def setup_logging(
910 terminal_width : Union [int , None ] = None , level : int = logging .INFO
1011) -> None :
1112 logger = logging .getLogger ("fastapi_cli" )
12- console = Console (width = terminal_width ) if terminal_width else None
13- rich_handler = RichHandler (
14- show_time = False ,
15- rich_tracebacks = True ,
16- tracebacks_show_locals = True ,
17- markup = True ,
18- show_path = False ,
19- console = console ,
20- )
21- rich_handler .setFormatter (logging .Formatter ("%(message)s" ))
22- logger .addHandler (rich_handler )
13+ if sys .stdout .isatty ():
14+ # This is a real terminal, use ANSI escape sequences for colored output
15+ console = Console (width = terminal_width ) if terminal_width else None
16+ rich_handler = RichHandler (
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)s" ))
25+ logger .propagate = False
26+ else :
27+ # You're being piped or redirected - pass it to the root logger
28+ pass
2329
2430 logger .setLevel (level )
25- logger .propagate = False
You can’t perform that action at this time.
0 commit comments