<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 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)