public static async Task <int> Main(string[] args) { Log.Logger = new LoggerConfiguration() .MinimumLevel.Debug() .MinimumLevel.Override("Microsoft", LogEventLevel.Warning) .MinimumLevel.Override("Microsoft.Hosting.Lifetime", LogEventLevel.Information) .MinimumLevel.Override("System", LogEventLevel.Warning) .MinimumLevel.Override("Microsoft.AspNetCore.Authentication", LogEventLevel.Information) .Enrich.FromLogContext() // uncomment to write to Azure diagnostics stream //.WriteTo.File( // @"identityserver.txt", // fileSizeLimitBytes: 1_000_000, // rollOnFileSizeLimit: true, // shared: true, // flushToDiskInterval: TimeSpan.FromSeconds(1)) .WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}", theme: AnsiConsoleTheme.Code) .CreateLogger(); try { Log.Information("Starting host..."); "update-ca-certificates".Bash(); var seed = args.Any(x => x == SeedArgs); if (seed) { args = args.Except(new[] { SeedArgs }).ToArray(); } var host = CreateHostBuilder(args).Build(); await DbMigrationHelper.Migrate(host); if (seed) { await DbSeederHelper.Seed(host); } await host.RunAsync(); return(0); } catch (Exception ex) { Log.Fatal(ex, "Host terminated unexpectedly."); return(1); } finally { Log.CloseAndFlush(); } }