def METHOD_NAME(spec_input_file, spec_output_file, log_dir):
    if not os.path.isdir(log_dir):
        os.makedirs(log_dir)
    if spec_input_file is None:
        print(f'Input spec input file missing - set with the --spec-input-file option')
        return
    if spec_output_file is None:
        print(f'Input spec output file missing - set with the --spec-output-file option')
        return
    logger = log.setup_custom_logger('root', log_dir=log_dir, prefix='multi-file-swagger')
    logger.setLevel(logging.INFO)
    logger.info('log-dir     : {}'.format(log_dir))
    start_time = datetime.now()
    try:
        logger.info(f'Processing swagger spec file: {spec_input_file}')
        with open(spec_input_file, 'r') as stream:
            try:
                data = yaml.load(stream, Loader=yaml.FullLoader)
                data = resolve_references(data, logger, "/")
                with open(spec_output_file, 'w') as yaml_file:
                    yaml.dump(data, yaml_file, sort_keys=False)
            except yaml.YAMLError as exc:
                print(exc)
    except IOError as e:
        print(f'error reading input file {spec_input_file} - error: {e}')
        return
    logger.info(f'Wrote swagger spec file     : {spec_output_file}')
    logger.info(f'Finished - duration         : {datetime.now() - start_time}')