@@ -187,42 +187,42 @@ def setup_logging(verbosity: int):
187187 logging .captureWarnings (True )
188188
189189 # Calculate logging level.
190- try :
191- name_to_level = logging .getLevelNamesMapping ()
192- except AttributeError :
193- # logging.getLevelNamesMapping() is python 3.11 or newer. Using
194- # implementation detail for older versions.
195- name_to_level = logging ._nameToLevel
196190 # Level from CLI flags.
197191 if verbosity >= 2 :
198192 cli_loglevel = logging .DEBUG
199193 elif verbosity == 1 :
200194 cli_loglevel = logging .INFO
201195 else :
202196 cli_loglevel = logging .WARNING
203- # Level from environment variable.
197+
198+ # Level from $LOGLEVEL environment variable.
199+ try :
200+ name_to_level = logging .getLevelNamesMapping ()
201+ except AttributeError :
202+ # logging.getLevelNamesMapping() is python 3.11 or newer. Using
203+ # implementation detail for older versions.
204+ name_to_level = logging ._nameToLevel
204205 env_loglevel = name_to_level .get (os .getenv ("LOGLEVEL" ), logging .ERROR )
206+
207+ # Logging verbosity is the most verbose of CLI and environment setting.
205208 loglevel = min (cli_loglevel , env_loglevel )
206209
207210 # Configure the root logger.
208211 logger = logging .getLogger ()
209- # Record everything at least INFO for the log file.
210- logger .setLevel (min (loglevel , logging .INFO ))
212+ # Set logging level.
213+ logger .setLevel (loglevel )
214+
211215 # Hide matplotlib's many font messages.
212- logger .addFilter (
213- lambda record : not (
214- isinstance (record , str ) and record .msg .startswith ("findfont:" )
215- )
216- )
216+ class NoFontMessageFilter (logging .Filter ):
217+ def filter (self , record ):
218+ return not record .getMessage ().startswith ("findfont:" )
219+
220+ logging .getLogger ("matplotlib.font_manager" ).addFilter (NoFontMessageFilter ())
221+
217222 stderr_log = logging .StreamHandler ()
218- # Filter stderr log to just what is requested.
219- stderr_log .addFilter (lambda record : record .levelno >= loglevel )
220- stderr_log .addFilter (
221- lambda record : not (
222- isinstance (record , str ) and record .msg .startswith ("findfont:" )
223- )
223+ stderr_log .setFormatter (
224+ logging .Formatter ("%(asctime)s %(name)s %(levelname)s %(message)s" )
224225 )
225- stderr_log .setFormatter (logging .Formatter ("%(asctime)s %(levelname)s %(message)s" ))
226226 logger .addHandler (stderr_log )
227227
228228
0 commit comments