1616_perf_log_enabled = False
1717
1818
19+ class _DefaultFormatter (logging .Formatter ):
20+
21+ def __init__ (self ):
22+ super ().__init__ ()
23+ self .info_formatter = logging .Formatter ("%(message)s" )
24+ self .other_formatter = logging .Formatter ("%(levelname)s: %(message)s" )
25+
26+ def format (self , record ):
27+ if record .levelno == logging .INFO :
28+ formatter = self .info_formatter
29+ else :
30+ formatter = self .other_formatter
31+ return formatter .format (record )
32+
33+
1934def configure_logging (
2035 level : Optional [Union [int , str ]] = None ,
2136 format : Optional [str ] = None ,
@@ -31,7 +46,7 @@ def configure_logging(
3146 format: Format to use for logging messages. See https://docs.python.org/3/library/logging.html#logrecord-attributes.
3247 If None, the format is determined from the PPAFM_LOG_FORMAT environment variable or
3348 defaults to "[%(asctime)s - %(name)s - %(levelname)s] %(message)s" if logging level is DEBUG,
34- or '%(message)s' otherwise .
49+ or otherwise '%(message)s' for INFO and `%(levelname): %(message)s` for more severe levels .
3550 log_path: Path where log will be written. If None, the path is determined from the the PPAFM_LOG_PATH
3651 environment variable, or defaults to stdout.
3752 log_performance: Whether to enable performance logging. If None, is True if the PPAFM_LOG_PERFORMANCE
@@ -88,15 +103,15 @@ def configure_logging(
88103 format = os .environ ["PPAFM_LOG_FORMAT" ]
89104 except KeyError :
90105 if _root_logger .level == logging .DEBUG :
91- format = "[%(asctime)s - %(name)s - %(levelname)s] %(message)s"
106+ _log_format = "[%(asctime)s - %(name)s - %(levelname)s] %(message)s"
107+ formatter = logging .Formatter (fmt = _log_format )
92108 else :
93- format = "%(message)s"
94- _log_format = format
95- _log_handler .setFormatter (logging . Formatter ( fmt = _log_format ) )
109+ _log_format = "%(message)s"
110+ formatter = _DefaultFormatter ()
111+ _log_handler .setFormatter (formatter )
96112
97113
98- # This sets the logging level immediately from environment variable or defaults to INFO.
99- # Also sets the message format.
114+ # This sets the logging level and other options immediately from environment variables.
100115configure_logging ()
101116
102117
0 commit comments