code: def log_config(self, logger):
          
  
          logger.info("app_name: %s", self.app_name)
          logger.info("app_version: %s", self.app_version)
          logger.info("current configuration:")
          config = [(key, self.option_definitions[key].value)
                    for key in self.option_definitions.keys_breadth_first()
                    if key not in self.keys_blocked_from_output]
          config.sort()
          for key, val in config:
              if (
                  self.option_definitions[key].secret
                  or 'password' in key.lower()
              ):
                  logger.info('%s: *********', key)
              else:
                  try:
                      logger.info('%s: %s', key,
                                  to_string_converters[type(key)](val))
                  except KeyError:
                      logger.info('%s: %s', key, val)
docs: write out the current configuration to a log-like object.
  
          parameters:
              logger - a object that implements a method called 'info' with the
                       same semantics as the call to 'logger.info