def print_change_report(potential_changes, required_changes, ucfg, logger=None
    ):
    """
    Pass in the list of changes generated by check_config file.
    print out in a pretty format the changes required

    Args:
        potential_changes: List of warnings about config property changes
                           especialy about defaults retruned from
                           :func:`~changes.ChangeLog.get_active_changes`.
        potential_required: List of critical changes returned from
                            :func:`~changes.ChangeLog.get_active_changes`.
    """
    msg = '{: <20} {: <25} {: <25} {: <25}'
    if logger != None:
        out = logger.info
    else:
        out = print
    msg_len = 90
    out(' ')
    out(' ')
    title = 'Configuration File Change Log Report:'
    out(title)
    header = '=' * len(title)
    out(header)
    if len(potential_changes) > 0:
        out("""Default changes - Warnings issued only when old default values are detected in file.
"""
            )
        out('Default Changes:')
        out('No. of default changes: {:0.0f}'.format(len(potential_changes)))
        any_warnings = True
        out(' ')
        out(msg.format(' Section', 'Item', 'Old Default', 'New Default'))
        out('-' * msg_len)
        for w in potential_changes:
            out(msg.format(w[0][0], w[0][1], w[0][3], w[1][3]))
        out(' ')
        out(' ')
    msg = '{: <50} {: <50}'
    if len(required_changes) > 0:
        any_errors = True
        out('Required Changes:')
        out('No. of necessary changes: {:0.0f}'.format(len(required_changes)))
        out(' ')
        out(msg.format('From', 'To'))
        out('-' * msg_len)
        for e in required_changes:
            orig = '{}/{}'.format(e[0][0], e[0][1])
            if e[1] != 'removed':
                to = '{}/{}'.format(e[1][0], e[1][1])
            else:
                to = e[1]
            out(msg.format(orig, to))
        out(' ')
        out(' ')
    if not any_errors and not any_warnings:
        out('No required changes or old defaults were reported with the config file.\n'
            )
