def METHOD_NAME(self):
    """Generate the report."""
    # Execute the function to report about, getting the LogHelper in return
    self.logger = self.execute(**self.attributes)
    # Return the logging records from the SilentReportHandler
    records = self._handler.getRecords()
    self._handler.clearRecords()
    # Update status from logging
    if len(records[logging.WARNING]) > 0:
        self.status = 1
    if len(records[logging.ERROR]) > 0 or len(records[logging.CRITICAL]) > 0:
        self.status = 2
    # Determine the text length for the LogHelper keys
    width = 0
    for k in self.logger.modes.keys():
        width = max(width, len(k))
    # Start the report text
    text = '{} {}\n'.format(mooseutils.colorText(self.title, 'CYAN', colored=self.color_text),
                            self._getStatusText(self.status))
    # Report the error counts
    for key, mode in self.logger.modes.items():
        cnt = self.logger.counts[key]
        msg = '{:>{width}}: {}\n'.format(key, cnt, width=width+2)
        text += self._colorTextByMode(msg, mode) if cnt > 0 else msg
    text += '\n'
    # Add logged items to the report, if desired
    n = self.number_of_newlines_after_log
    if len(records[logging.CRITICAL]) > 0 and self.show_critical:
        text += self._colorTextByStatus('CRITICAL:\n', SQAReport.Status.ERROR)
        for record in records[logging.CRITICAL]:
            text += record.getMessage() + '\n'*n
    if len(records[logging.ERROR]) > 0 and self.show_error:
        text += self._colorTextByStatus('ERRORS:\n', SQAReport.Status.ERROR)
        for record in records[logging.ERROR]:
            text += record.getMessage() + '\n'*n
    if (len(records[logging.WARNING]) > 0) and self.show_warning:
        text += self._colorTextByStatus('WARNINGS:\n', SQAReport.Status.WARNING)
        for record in records[logging.WARNING]:
            text += record.getMessage() + '\n'*n
    return text.strip('\n')