/// <summary>
        /// Add LogFileFluentMigratorLoggerProvider if enabled by configuration
        /// </summary>
        /// <param name="loggingBuilder"></param>
        /// <param name="configuration"></param>
        /// <returns></returns>
        public static ILoggingBuilder AddFluentMigratorFileLogger(
            this ILoggingBuilder loggingBuilder,
            IConfiguration configuration = null)
        {
            configuration = GetConfiguration(loggingBuilder, configuration);

            string disabledReason = null;

            if (configuration == null || !configuration.IsMigrationLogFileEnabledInternal(out disabledReason))
            {
                disabledReason = disabledReason ?? "by missing configuration";
                loggingBuilder.Services.RemoveLogFileFluentMigratorLoggerOptions();
                loggingBuilder.Services.RemoveFluentMigratorLogFileProviders();
                if (MigrationFileLoggingDisabledReported == false)
                {
                    MigrationFileLoggingDisabledReported = true;
                    Console.ForegroundColor = ConsoleColor.DarkGray;
                    Console.WriteLine($"Migration File logging is turned off {disabledReason}");
                    Console.ResetColor();
                }

                return(loggingBuilder);
            }

            var options = new LogFileFluentMigratorLoggerOptions
            {
                ShowSql         = configuration.IsMigrationLogFileShowSqlEnabled(),
                ShowElapsedTime = configuration.IsMigrationLogFileShowElapsedTimeEnabled(),
                OutputFileName  = configuration.GetMigrationLogFile()
            };

            return(loggingBuilder.AddFluentMigratorFileLogger(options));
        }
        public static ILoggingBuilder AddFluentMigratorFileLogger(
            this ILoggingBuilder loggingBuilder,
            IConfiguration configuration = null)
        {
            configuration = GetConfiguration(loggingBuilder, configuration);

            if (configuration == null || !configuration.IsMigrationLogFileEnabled())
            {
                return(loggingBuilder);
            }

            var options = new LogFileFluentMigratorLoggerOptions
            {
                ShowSql         = configuration.IsMigrationLogShowSqlEnabled(),
                ShowElapsedTime = configuration.IsMigrationLogShowElapsedTimeEnabled(),
                OutputFileName  = configuration.GetMigrationLogFile()
            };

            return(loggingBuilder.AddFluentMigratorFileLogger(options));
        }