public function generate(ConsoleLoggerInterface $logger)
    {
        $logLevel = LogLevel::NOTICE;
        $style = TitleBlock::STYLE_SUCCESS;
        if ($this->eventDataCollector->hasCountedFailedEvents()) {
            $logLevel = LogLevel::ERROR;
            $style = TitleBlock::STYLE_FAILURE;
        } elseif ($this->eventDataCollector->hasCountedLogLevel(LogLevel::EMERGENCY) || $this->eventDataCollector->hasCountedLogLevel(LogLevel::ALERT) || $this->eventDataCollector->hasCountedLogLevel(LogLevel::CRITICAL) || $this->eventDataCollector->hasCountedLogLevel(LogLevel::ERROR) || $this->eventDataCollector->hasCountedLogLevel(LogLevel::WARNING)) {
            $logLevel = LogLevel::WARNING;
            $style = TitleBlock::STYLE_ERRORED_SUCCESS;
        }

        $output = $logger->getOutput($logLevel);

        $titleBlock = new TitleBlock($output, $this->messages[$style], $style);
        $titleBlock->render();

        $dataCollectorsData = array();
        foreach ($this->dataCollectors as $dataCollector) {
            $data = $dataCollector->getData($logger->getVerbosity());
            foreach ($data as $label => $value) {
                $dataCollectorsData[] = array($label, $value);
            }
        }

        $table = new Table($output);
        $table->setRows($dataCollectorsData);
        $table->setStyle('symfony-style-guide');
        $table->render();

        $output->writeln('');
    }