          )
  
      def setup_test_environment(self, **kwargs):
          setup_test_environment(debug=self.debug_mode)
          unittest.installHandler()
  
 
</s> remove         if self.verbosity >= 2:
            unused_databases = [alias for alias in connections if alias not in databases]
            if unused_databases:
                print('Skipping setup of unused database(s): %s.' % ', '.join(sorted(unused_databases)))
 </s> add         unused_databases = [alias for alias in connections if alias not in databases]
        if unused_databases:
            self.log(
                'Skipping setup of unused database(s): %s.' % ', '.join(sorted(unused_databases)),
                level=logging.DEBUG,
            ) </s> remove         if self.verbosity >= 1:
            print('Found %d tests.' % len(all_tests))
 </s> add         self.log('Found %d tests.' % len(all_tests), level=logging.INFO) </s> remove             if self.verbosity >= 2:
                if self.tags:
                    print('Including test tag(s): %s.' % ', '.join(sorted(self.tags)))
                if self.exclude_tags:
                    print('Excluding test tag(s): %s.' % ', '.join(sorted(self.exclude_tags)))
 </s> add             if self.tags:
                self.log(
                    'Including test tag(s): %s.' % ', '.join(sorted(self.tags)),
                    level=logging.DEBUG,
                )
            if self.exclude_tags:
                self.log(
                    'Excluding test tag(s): %s.' % ', '.join(sorted(self.exclude_tags)),
                    level=logging.DEBUG,
                )
    def log(self, msg, level=None):
        """
        Log the given message at the given logging level.

        A verbosity of 1 logs INFO (the default level) or above, and verbosity
        2 or higher logs all levels.
        """
        if self.verbosity <= 0 or (
            self.verbosity == 1 and level is not None and level < logging.INFO
        ):
            return
        print(msg)

          )
  
    def log(self, msg, level=None):
        """
        Log the given message at the given logging level.

        A verbosity of 1 logs INFO (the default level) or above, and verbosity
        2 or higher logs all levels.
        """
        if self.verbosity <= 0 or (
            self.verbosity == 1 and level is not None and level < logging.INFO
        ):
            return
        print(msg)

      def setup_test_environment(self, **kwargs):
          setup_test_environment(debug=self.debug_mode)
          unittest.installHandler()
  
keep add keep keep keep keep
 Refs #32552 -- Added DiscoverRunner.log() to allow customization.

Thanks Carlton Gibson, Chris Jerdonek, and David Smith for reviews. 
django/test/runner.py