abp

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

6
namespace MyCompanyName.MyProjectName;
7

8
public class Program
9
{
10
    public async static Task<int> Main(string[] args)
11
    {
12
        var loggerConfiguration = new LoggerConfiguration()
13
#if DEBUG
14
            .MinimumLevel.Debug()
15
#else
16
            .MinimumLevel.Information()
17
#endif
18
            .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

24
        if (IsMigrateDatabase(args))
25
        {
26
            loggerConfiguration.MinimumLevel.Override("Volo.Abp", LogEventLevel.Warning);
27
            loggerConfiguration.MinimumLevel.Override("Microsoft", LogEventLevel.Warning);
28
        }
29

30
        Log.Logger = loggerConfiguration.CreateLogger();
31

32
        try
33
        {
34
            var builder = WebApplication.CreateBuilder(args);
35
            builder.Host.AddAppSettingsSecretsJson()
36
                .UseAutofac()
37
                .UseSerilog();
38
            if (IsMigrateDatabase(args))
39
            {
40
                builder.Services.AddDataMigrationEnvironment();
41
            }
42
            await builder.AddApplicationAsync<MyProjectNameModule>();
43
            var app = builder.Build();
44
            await app.InitializeApplicationAsync();
45

46
            if (IsMigrateDatabase(args))
47
            {
48
                await app.Services.GetRequiredService<MyProjectNameDbMigrationService>().MigrateAsync();
49
                return 0;
50
            }
51

52
            Log.Information("Starting MyCompanyName.MyProjectName.");
53
            await app.RunAsync();
54
            return 0;
55
        }
56
        catch (Exception ex)
57
        {
58
            if (ex is HostAbortedException)
59
            {
60
                throw;
61
            }
62

63
            Log.Fatal(ex, "MyCompanyName.MyProjectName terminated unexpectedly!");
64
            return 1;
65
        }
66
        finally
67
        {
68
            Log.CloseAndFlush();
69
        }
70
    }
71

72
    private static bool IsMigrateDatabase(string[] args)
73
    {
74
        return args.Any(x => x.Contains("--migrate-database", StringComparison.OrdinalIgnoreCase));
75
    }
76
}
77

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

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

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

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