|
- using System;
- using System.Threading.Tasks;
- using Microsoft.AspNetCore.Builder;
- using Microsoft.Extensions.DependencyInjection;
- using Microsoft.Extensions.Hosting;
- using Serilog;
- using Serilog.Events;
-
- namespace Himp.TaskScheduling;
-
- public class Program
- {
- public async static Task<int> Main(string[] args)
- {
- 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",
- rollingInterval: RollingInterval.Infinite,
- fileSizeLimitBytes: 1_000_000,
- rollOnFileSizeLimit: true))
- .WriteTo.Async(c => c.Console())
- .CreateLogger();
-
- try
- {
- Log.Information("Starting web host.");
- var builder = WebApplication.CreateBuilder(args);
- builder.Host.AddAppSettingsSecretsJson()
- .UseAutofac()
- .UseSerilog();
- await builder.AddApplicationAsync<TaskSchedulingHttpApiHostModule>();
- 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();
- }
- }
- }
|