code: def setup_logging(
      handler, excluded_loggers=EXCLUDED_LOGGER_DEFAULTS, log_level=logging.INFO
  ):
      
      all_excluded_loggers = set(excluded_loggers + EXCLUDED_LOGGER_DEFAULTS)
      logger = logging.getLogger()
      logger.setLevel(log_level)
      logger.addHandler(handler)
      logger.addHandler(logging.StreamHandler())
      for logger_name in all_excluded_loggers:
          logger = logging.getLogger(logger_name)
          logger.propagate = False
          logger.addHandler(logging.StreamHandler())
docs: Attach a logging handler to the Python root logger
  
      Excludes loggers that this library itself uses to avoid
      infinite recursion.
  
      :type handler: :class:`logging.handler`
      :param handler: the handler to attach to the global handler
  
      :type excluded_loggers: tuple
      :param excluded_loggers: (Optional) The loggers to not attach the handler
                               to. This will always include the loggers in the
                               path of the logging client itself.
  
      :type log_level: int
      :param log_level: (Optional) Python logging log level. Defaults to
                        :const:`logging.INFO`.
  
      Example:
  
      .. code-block:: python
  
          import logging
          import google.cloud.logging
          from google.cloud.logging.handlers import CloudLoggingHandler
  
          client = google.cloud.logging.Client()
          handler = CloudLoggingHandler(client)
          google.cloud.logging.handlers.setup_logging(handler)
          logging.getLogger().setLevel(logging.DEBUG)
  
          logging.error('bad news')  # API call