@@ -90,6 +90,29 @@ def new(*args):
90
90
return new
91
91
92
92
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
+
93
116
def _setup_logging (progname , action_name ):
94
117
"""Set up the logging infrastructure."""
95
118
global logger
@@ -118,24 +141,14 @@ def _setup_logging(progname, action_name):
118
141
filehand .setFormatter (formatter )
119
142
logger_root .addHandler (filehand )
120
143
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 )
139
152
140
153
logger = logging .getLogger (progname )
141
154
0 commit comments