def print_config_report(warnings, errors, logger=None):
    """
    Pass in the list of string messages generated by check_config file.
    print out in a pretty format the issues

    Args:
        warnings: List of non-critical messages returned from
                :func:`~utilities.check_config`.
        errors: List of critical messages returned from
              :func:`~utilities.check_config`.
        logger: pass in the logger function being used. If no logger is
                provided, print is used. Default = None
    """
    msg = '{: <20} {: <25} {: <60}'
    if logger != None:
        out = logger.info
    else:
        out = print
    msg_len = 90
    out(' ')
    out(' ')
    out('Configuration File Status Report:')
    header = '=' * msg_len
    out(header)
    any_warnings = False
    any_errors = False
    if len(warnings) > 0:
        any_warnings = True
        out('WARNINGS:')
        out(' ')
        out(msg.format(' Section', 'Item', 'Message'))
        out('-' * msg_len)
        for w in warnings:
            out(w)
        out(' ')
        out(' ')
    if len(errors) > 0:
        any_errors = True
        out('ERRORS:')
        out(' ')
        out(msg.format('Section', 'Item', 'Message'))
        out('-' * msg_len)
        for e in errors:
            out(e)
        out(' ')
        out(' ')
    if not any_errors and not any_warnings:
        out('No errors or warnings were reported with the config file.\n')
