abp

Форк
0
1
using MyCompanyName.MyProjectName;
2
using MyCompanyName.MyProjectName.Data;
3
using Serilog;
4
using Serilog.Events;
5
using Volo.Abp.Data;
6

7
public class Program
8
{
9
    public async static Task<int> Main(string[] args)
10
    {
11
//<TEMPLATE-REMOVE IF-NOT='dbms:PostgreSQL'>
12
        // https://www.npgsql.org/efcore/release-notes/6.0.html#opting-out-of-the-new-timestamp-mapping-logic
13
        AppContext.SetSwitch("Npgsql.EnableLegacyTimestampBehavior", true);
14

15
//</TEMPLATE-REMOVE>
16
        var loggerConfiguration = new LoggerConfiguration()
17
#if DEBUG
18
            .MinimumLevel.Debug()
19
#else
20
            .MinimumLevel.Information()
21
#endif
22
            .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
23
            .MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning)
24
            .Enrich.FromLogContext()
25
            .WriteTo.Async(c => c.File("Logs/logs.txt"))
26
            .WriteTo.Async(c => c.Console());
27

28
        if (IsMigrateDatabase(args))
29
        {
30
            loggerConfiguration.MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning);
31
            loggerConfiguration.MinimumLevel.Override("Microsoft", LogEventLevel.Warning);
32
        }
33

34
        Log.Logger = loggerConfiguration.CreateLogger();
35

36
        try
37
        {
38

39
            var builder = WebApplication.CreateBuilder(args);
40
            builder.Host.AddAppSettingsSecretsJson()
41
                .UseAutofac()
42
                .UseSerilog();
43
            if (IsMigrateDatabase(args))
44
            {
45
                builder.Services.AddDataMigrationEnvironment();
46
            }
47
            await builder.AddApplicationAsync<MyProjectNameHostModule>();
48
            var app = builder.Build();
49
            await app.InitializeApplicationAsync();
50

51
             if (IsMigrateDatabase(args))
52
            {
53
                await app.Services.GetRequiredService<MyProjectNameDbMigrationService>().MigrateAsync();
54
                return 0;
55
            }
56

57
            Log.Information("Starting MyCompanyName.MyProjectName.");
58
            await app.RunAsync();
59
            return 0;
60
        }
61
        catch (Exception ex)
62
        {
63
            if (ex is HostAbortedException)
64
            {
65
                throw;
66
            }
67

68
            Log.Fatal(ex, "MyCompanyName.MyProjectName terminated unexpectedly!");
69
            return 1;
70
        }
71
        finally
72
        {
73
            Log.CloseAndFlush();
74
        }
75
    }
76

77
    private static bool IsMigrateDatabase(string[] args)
78
    {
79
        return args.Any(x => x.Contains("--migrate-database", StringComparison.OrdinalIgnoreCase));
80
    }
81
}
82

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.