Ejemplo n.º 1
0
        private static int RunUnderLogging(AppOptions options, DateTime start)
        {
            IRunnerSettings settings = (RunnerSettings)options;

            using (var logger = new Logger())
                using (var rollingFileLogSink = new RollingFileLogSink(settings.FileLoggerSettings))
                {
                    try
                    {
                        logger.AddLogSink(rollingFileLogSink);

                        SendLogFilePathToExchange(logger, rollingFileLogSink, options);

                        var runner = new Runner(settings, logger);

                        return((int)runner.Go());
                    }
                    catch (Exception ex)
                    {
                        logger.PostException(ex);
                        throw ex;
                    }
                    finally
                    {
                        logger.PostEntryNoTimestamp("Elapsed time {0}", DateTime.UtcNow - start);
                        logger.CompleteAllAsync().Wait(new TimeSpan(0, 0, 3));
                    }
                }
        }
Ejemplo n.º 2
0
        private static int Main(string[] args)
        {
            var options = ParseCommandLineArguments(args);

            if (options == null)
            {
                return(ExitCodes.InvalidArguments);
            }

            using (var logger = new Logger())
                using (var logSink = new RollingFileLogSink(new RollingFileSettings(options.LogFolder, "SQL Scripter")))
                {
                    logger.AddLogSink(logSink);

                    try
                    {
                        LogHeader(logger, options);

                        SetupFolders(options.LogFolder, options.OutputFolder);

                        var scriptFileManager = new ScriptFileManager(Path.Combine(options.OutputFolder, options.Server));
                        var server            = new ServerWrapper(new Server(options.Server));

                        var scripter =
                            new Scripter(server, scriptFileManager, logger)
                            .IncludeTheseDatabases(options.IncludeDatabases.ToArray())
                            .ExcludedTheseDatabases(options.ExcludeDatabases.ToArray());

                        ConfigureScriptingSources(options, scripter);

                        scripter.DumpScripts();

                        logger.PostEntry("DONE");
                    }
                    catch (Exception ex)
                    {
                        logger.PostException(ex);
                        Console.WriteLine(ex);
                        return(ExitCodes.UnexpectedException);
                    }

                    logger.CompleteAllAsync().Wait(new TimeSpan(0, 0, 3));
                }

            return(ExitCodes.Ok);
        }