@@ -90,6 +90,29 @@ def new(*args):
9090 return new
9191
9292
93+ def _setup_tqdm_logging (logger_root ):
94+ """Set up a tqdm logging handler."""
95+
96+ class TqdmLoggingHandler (logging .Handler ):
97+ """A logging handler that writes to tqdm."""
98+ def __init__ (self , level = logging .NOTSET ):
99+ super ().__init__ (level )
100+
101+ def emit (self , record ):
102+ try :
103+ msg = self .format (record )
104+ tqdm .tqdm .write (msg )
105+ self .flush ()
106+ except (ValueError , TypeError , IOError , OSError ):
107+ self .handleError (record )
108+ console = TqdmLoggingHandler ()
109+ console .setLevel (logging .INFO )
110+ # Add logger color coding on all platforms but win32
111+ if sys .platform != 'win32' and sys .stdout .isatty ():
112+ console .emit = _color_handler_emit (console .emit )
113+ logger_root .addHandler (console )
114+
115+
93116def _setup_logging (progname , action_name ):
94117 """Set up the logging infrastructure."""
95118 global logger
@@ -118,24 +141,14 @@ def _setup_logging(progname, action_name):
118141 filehand .setFormatter (formatter )
119142 logger_root .addHandler (filehand )
120143
121- class TqdmLoggingHandler (logging .Handler ):
122- """A logging handler that writes to tqdm."""
123- def __init__ (self , level = logging .NOTSET ):
124- super ().__init__ (level )
125-
126- def emit (self , record ):
127- try :
128- msg = self .format (record )
129- tqdm .tqdm .write (msg )
130- self .flush ()
131- except (ValueError , TypeError , IOError , OSError ):
132- self .handleError (record )
133- console = TqdmLoggingHandler ()
134- console .setLevel (logging .INFO )
135- # Add logger color coding on all platforms but win32
136- if sys .platform != 'win32' and sys .stdout .isatty ():
137- console .emit = _color_handler_emit (console .emit )
138- logger_root .addHandler (console )
144+ if sys .stderr .isatty ():
145+ _setup_tqdm_logging (logger_root )
146+ else :
147+ console = logging .StreamHandler ()
148+ console .setLevel (logging .INFO )
149+ formatter = logging .Formatter ('%(levelname)-8s %(message)s' )
150+ console .setFormatter (formatter )
151+ logger_root .addHandler (console )
139152
140153 logger = logging .getLogger (progname )
141154
0 commit comments