using System; using System.Threading.Tasks; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Serilog; using Serilog.Events; using Shentun.Peis.Filter; namespace Shentun.Peis; public class Program { public async static Task Main(string[] args) { try { var builder = WebApplication.CreateBuilder(args); var configuration = builder.Configuration; 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() .Filter.With(new ExcludeHealthCheckFilter(configuration)) .WriteTo.Async(c => c.File("Logs/logs.txt", LogEventLevel.Information, rollingInterval: RollingInterval.Day)) .WriteTo.Async(c => c.File("Logs/error.txt", LogEventLevel.Error, rollingInterval: RollingInterval.Day)) .WriteTo.Async(c => c.Console()) .CreateLogger(); Log.Information("Starting Shentun.Peis.HttpApi.Host."); builder.Host.AddAppSettingsSecretsJson() .UseAutofac() .UseSerilog(); await builder.AddApplicationAsync(); var app = builder.Build(); await app.InitializeApplicationAsync(); //GenerateCertificateHelper gc = new GenerateCertificateHelper(); //gc.GenerateEncryptionCertificate(); //gc.GenerateSigningCertificate(); await app.RunAsync(); return 0; } catch (Exception ex) { Log.Fatal(ex, "Host terminated unexpectedly!"); return 1; } finally { Log.CloseAndFlush(); } } }