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