      from that test suite.
  
  
  Testing utilities
  -----------------
  
 
</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,
                ) </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:
            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,
            )
.. method:: DiscoverRunner.log(msg, level=None)

    .. versionadded:: 4.0

    Prints to the console a message with the given integer `logging level`_
    (e.g. ``logging.DEBUG``, ``logging.INFO``, or ``logging.WARNING``),
    respecting the current ``verbosity``. For example, an ``INFO`` message will
    be logged if the ``verbosity`` is at least 1, and ``DEBUG`` will be logged
    if it is at least 2.

.. _`logging level`: https://docs.python.org/3/library/logging.html#levels
      from that test suite.
  
.. method:: DiscoverRunner.log(msg, level=None)

    .. versionadded:: 4.0

    Prints to the console a message with the given integer `logging level`_
    (e.g. ``logging.DEBUG``, ``logging.INFO``, or ``logging.WARNING``),
    respecting the current ``verbosity``. For example, an ``INFO`` message will
    be logged if the ``verbosity`` is at least 1, and ``DEBUG`` will be logged
    if it is at least 2.

.. _`logging level`: https://docs.python.org/3/library/logging.html#levels
  
  Testing utilities
  -----------------
  
keep add keep keep keep keep
 Refs #32552 -- Added DiscoverRunner.log() to allow customization.

Thanks Carlton Gibson, Chris Jerdonek, and David Smith for reviews. 
docs/topics/testing/advanced.txt