Exemplo 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));
                }
            }
        }
Exemplo 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;
        }