def log_and_count(self, event_str, msg_str=None, inc_int=None):
        """Count an event and write a message to a logger.

        Args:
          event_str: str
            The name of an event to count. Used as a key in the event dict. The same
            name will be used in the summary. This also becomes a part of the message
            logged by this function.

          msg_str: str
            Optional message with details about the events. The message is only written
            to the log. While the ``event_str`` functions as a key and must remain the
            same for the same type of event, ``log_str`` may change between calls.

          inc_int: int
            Optional argument to increase the count for the event by more than 1.

        """
        logger.info(
            ' - '.join(map(str, [v for v in (event_str, msg_str, inc_int) if v]))
        )
        self.count(event_str, inc_int or 1)