using Infrastructure.Extensions; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Serilog; using System; namespace Infrastructure.Web.Hosting { public static class IWebHostBuilderExtensions { public static IWebHostBuilder Config(this IWebHostBuilder hostBuilder) where TStartup : class { try { var configuration = new ConfigurationBuilder().Build(); Log.Logger = new LoggerConfiguration() .ReadFrom.Configuration(configuration) .WriteTo.Console() .WriteTo.File("logs/log.txt", rollOnFileSizeLimit: true, fileSizeLimitBytes: 100 * 1024 * 1024, rollingInterval: RollingInterval.Infinite) .CreateLogger(); hostBuilder .UseSerilog() .UseStartup() .Build() .Run(); } catch (Exception ex) { ex.PrintStack(); Log.Fatal(ex.Message); } finally { Log.CloseAndFlush(); } return hostBuilder; } } }