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