You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
1.9 KiB

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<int> 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<PeisHttpApiHostModule>();
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();
}
}
}