using Microsoft.AspNetCore; using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using Serilog; using Serilog.Settings.Configuration; using System; using System.IO; using System.Text; namespace Platform { public class Program { public static void Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; var config = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: true) .Build(); var logConfig = new LoggerConfiguration() .ReadFrom.Configuration(config, ConfigurationAssemblySource.AlwaysScanDllFiles) .WriteTo.Console(); logConfig = config.GetSection("AppSettings").GetValue("Log", "File") == "File" ? logConfig.WriteTo.File("logs/log.txt", rollOnFileSizeLimit: true, fileSizeLimitBytes: 100 * 1024 * 1024, rollingInterval: RollingInterval.Infinite) : logConfig.WriteTo.SQLite(Path.Combine(Directory.GetCurrentDirectory(), "log.db")); Log.Logger = logConfig.CreateLogger(); try { Log.Information("web host start"); WebHost.CreateDefaultBuilder(args) .UseConfiguration(config) .UseSerilog() .UseStartup() .Build() .Run(); Log.Information("web host end"); } catch (Exception ex) { Log.Fatal(ex, "Host terminated unexpectedly"); return; } finally { Log.CloseAndFlush(); } } } }