public static async Task <int> Main(string[] args) { var configuration = BuildConfiguration(args); if (DogfeedService.IsInDogfeedMode) { Log.Logger = LoggerFactory.BuildDogfeedLogger(); await DogfeedAsync(configuration); return(0); } else { Log.Logger = LoggerFactory.BuildWebApplicationLogger(configuration); try { var host = CreateDoggerHostBuilder(configuration, args).Build(); await DatabaseMigrator.MigrateDatabaseForHostAsync(host); await host.RunAsync(); return(0); } catch (Exception ex) when(!Debugger.IsAttached) { Log.Fatal(ex, "Host terminated unexpectedly"); return(1); } finally { Log.CloseAndFlush(); } } }