'Forward events to the legacy observer after editing them to
ensure compatibility.
@param event: an event
@type event: L{dict}'

def __call__(self, event):

    if ('message' not in event):
        event['message'] = ()
    if ('time' not in event):
        event['time'] = event['log_time']
    if ('system' not in event):
        event['system'] = event.get('log_system', '-')
    if (('format' not in event) and (event.get('log_format', None) is not None)):
        event['format'] = '%(log_legacy)s'
        event['log_legacy'] = StringifiableFromEvent(event.copy())
        if (not isinstance(event['message'], tuple)):
            event['message'] = ()
    if ('log_failure' in event):
        if ('failure' not in event):
            event['failure'] = event['log_failure']
        if ('isError' not in event):
            event['isError'] = 1
        if ('why' not in event):
            event['why'] = formatEvent(event)
    elif ('isError' not in event):
        if (event['log_level'] in (LogLevel.error, LogLevel.critical)):
            event['isError'] = 1
        else:
            event['isError'] = 0
    self.legacyObserver(event)
