using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Server.Kestrel.Core; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Serilog; using Serilog.Events; using Shentun.Utilities; namespace Shentun.WebPeis; public class Program { public async static Task Main(string[] args) { var configuration = new ConfigurationBuilder() .SetBasePath(DirectoryHelper.GetAppDirectory()) .AddJsonFile("Serilog.json", false, reloadOnChange: true) .Build(); Log.Logger = new LoggerConfiguration() #if DEBUG .MinimumLevel.Debug() #else .MinimumLevel.Information() #endif //.MinimumLevel.Override("Microsoft", LogEventLevel.Information) //.MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning) //.Enrich.FromLogContext() //.WriteTo.Async(c => c.File("Logs/logs.txt")) //.WriteTo.Async(c => c.Console()) .ReadFrom.Configuration(configuration) .CreateLogger(); try { Log.Information("Starting Shentun.WebPeis.HttpApi.Host."); var builder = WebApplication.CreateBuilder(args); builder.Host.AddAppSettingsSecretsJson() .UseAutofac() .UseSerilog(); await builder.AddApplicationAsync(); var app = builder.Build(); await app.InitializeApplicationAsync(); await app.RunAsync(); return 0; } catch (Exception ex) { if (ex is HostAbortedException) { throw; } Log.Fatal(ex, "Host terminated unexpectedly!"); return 1; } finally { Log.CloseAndFlush(); } } }