abp
76 строк · 2.3 Кб
1using MyCompanyName.MyProjectName.Data;2using Serilog;3using Serilog.Events;4using Volo.Abp.Data;5
6namespace MyCompanyName.MyProjectName;7
8public class Program9{
10public async static Task<int> Main(string[] args)11{12var loggerConfiguration = new LoggerConfiguration()13#if DEBUG14.MinimumLevel.Debug()15#else16.MinimumLevel.Information()17#endif18.MinimumLevel.Override("Microsoft", LogEventLevel.Information)19.MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning)20.Enrich.FromLogContext()21.WriteTo.Async(c => c.File("Logs/logs.txt"))22.WriteTo.Async(c => c.Console());23
24if (IsMigrateDatabase(args))25{26loggerConfiguration.MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning);27loggerConfiguration.MinimumLevel.Override("Microsoft", LogEventLevel.Warning);28}29
30Log.Logger = loggerConfiguration.CreateLogger();31
32try33{34var builder = WebApplication.CreateBuilder(args);35builder.Host.AddAppSettingsSecretsJson()36.UseAutofac()37.UseSerilog();38if (IsMigrateDatabase(args))39{40builder.Services.AddDataMigrationEnvironment();41}42await builder.AddApplicationAsync<MyProjectNameModule>();43var app = builder.Build();44await app.InitializeApplicationAsync();45
46if (IsMigrateDatabase(args))47{48await app.Services.GetRequiredService<MyProjectNameDbMigrationService>().MigrateAsync();49return 0;50}51
52Log.Information("Starting MyCompanyName.MyProjectName.");53await app.RunAsync();54return 0;55}56catch (Exception ex)57{58if (ex is HostAbortedException)59{60throw;61}62
63Log.Fatal(ex, "MyCompanyName.MyProjectName terminated unexpectedly!");64return 1;65}66finally67{68Log.CloseAndFlush();69}70}71
72private static bool IsMigrateDatabase(string[] args)73{74return args.Any(x => x.Contains("--migrate-database", StringComparison.OrdinalIgnoreCase));75}76}
77