diff options
| -rw-r--r-- | fg21sim/utils/logging.py | 30 | 
1 files changed, 16 insertions, 14 deletions
diff --git a/fg21sim/utils/logging.py b/fg21sim/utils/logging.py index bc827fc..d2bfa1f 100644 --- a/fg21sim/utils/logging.py +++ b/fg21sim/utils/logging.py @@ -12,6 +12,7 @@ from logging import FileHandler, StreamHandler  def setup_logging(dict_config=None, level=None, stream=None, logfile=None):      """Setup the logging. +      This will override the logging configurations in the config file      if specified (e.g., by command line arguments). @@ -20,30 +21,30 @@ def setup_logging(dict_config=None, level=None, stream=None, logfile=None):      dict_config : dict          Dict of logging configurations specified in the config file.          If this parameter specified, the logging will be reconfigured. -    level : string; +    level : str;          Override the existing log level      stream : string; "stderr", "stdout", or ""          This controls where the log messages go to.          If not None, then override the old ``StreamHandler`` settings;          if ``stream=""``, then disable the ``StreamHandler``. -    logfile : string +    logfile : str          Specify the file where the log messages go to.          If ``logfile=""``, then disable the ``FileHandler``.      NOTE      ----      If the logging already has ``StreamHandler`` or ``FileHandler`` -    configured, then the old handler will be *replaced* (i.e., remove +    configured, then the old handler will be **replaced** (i.e., remove      the old one, then add the new one).      """ -    # default file open mode for logging to file +    # Default file open mode for logging to file      filemode = "a"      root_logger = logging.getLogger()      #      if dict_config: -        # XXX: -        # "basicConfig()" does NOT accept paramter "filemode" if the -        # corresponding parameter "filename" NOT specified. +        # XXX/NOTE: +        # ``basicConfig()`` does NOT accept parameter ``filemode`` if the +        # corresponding parameter ``filename`` NOT specified.          filemode = dict_config.pop("filemode", filemode)          # Clear existing handlers, otherwise further "basicConfig" calls          # will be ignored @@ -55,15 +56,16 @@ def setup_logging(dict_config=None, level=None, stream=None, logfile=None):          # the handlers to the "root" logger.          logging.basicConfig(**dict_config)      # -    # Configured logging has at least one handler with configured formatter. -    # Keep the existing formatter to keep the configured format styles. -    formatter = root_logger.handlers[0].formatter      if level is not None:          level_int = getattr(logging, level.upper(), None)          if not isinstance(level_int, int):              raise ValueError("invalid log level: %s" % level)          root_logger.setLevel(level_int)      # +    # Configured logging has at least one handler with configured formatter. +    # Store the existing formatter to preserve the configured format styles. +    formatter = root_logger.handlers[0].formatter +    #      if stream is None:          pass      elif stream in ["", "stderr", "stdout"]: @@ -73,10 +75,10 @@ def setup_logging(dict_config=None, level=None, stream=None, logfile=None):                  handler.close()                  root_logger.removeHandler(handler)          if stream == "": -            # disable ``StreamHandler`` +            # ``StreamHandler`` already disabled              pass          else: -            # add new ``StreamHandler`` +            # Add new ``StreamHandler``              handler = StreamHandler(getattr(sys, stream))              handler.setFormatter(formatter)              root_logger.addHandler(handler) @@ -91,10 +93,10 @@ def setup_logging(dict_config=None, level=None, stream=None, logfile=None):                  handler.close()                  root_logger.removeHandler(handler)          if logfile == "": -            # disable ``FileHandler`` +            # ``FileHandler`` already disabled              pass          else: -            # add new ``FileHandler`` +            # Add new ``FileHandler``              handler = FileHandler(logfile, mode=filemode)              handler.setFormatter(formatter)              root_logger.addHandler(handler)  | 
