Define a new logger function that will log the given arguments
        with the given predefined keys.

        :param level:
            The log level to use for each call.
        :param field_names:
            Set of predefined keys.
        :param default:
            A default value for each key.
        :param filters:
            Additional filters for treating given arguments.
        :param include_exc_info:
            Include a stack trace with the log.  Useful for the ``ERROR``
            log level.
        :return:
            A function that will log given values with the predefined
            keys and the given log level.

def define_logger_func(self, level, field_names, default=NO_DEFAULT,
                           filters=None, include_exc_info=False):
        """Define a new logger function that will log the given arguments
        with the given predefined keys.

        :param level:
            The log level to use for each call.
        :param field_names:
            Set of predefined keys.
        :param default:
            A default value for each key.
        :param filters:
            Additional filters for treating given arguments.
        :param include_exc_info:
            Include a stack trace with the log.  Useful for the ``ERROR``
            log level.
        :return:
            A function that will log given values with the predefined
            keys and the given log level.
        """
        kv_formatter = KvFormatter(field_names, default, filters)
        return lambda *a, **kw: self._log(level, kv_formatter(*a, **kw),
                                          include_exc_info)