using System; using System.IO; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using NLog; using NLog.Web; using Serilog; using Serilog.Events; using Serilog.Sinks.Elasticsearch; namespace Business { public class Program { public static int Main(string[] args) { var configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json") .AddEnvironmentVariables() .Build(); NLog.Extensions.Logging.ConfigSettingLayoutRenderer.DefaultConfiguration = configuration; var appBasePath = System.IO.Directory.GetCurrentDirectory(); NLog.GlobalDiagnosticsContext.Set("appbasepath", appBasePath); var logger = LogManager.LoadConfiguration("nlog.config").GetCurrentClassLogger(); Log.Logger = new LoggerConfiguration() #if DEBUG .MinimumLevel.Debug() #else .MinimumLevel.Information() #endif .MinimumLevel.Override("Microsoft", LogEventLevel.Information) .Enrich.FromLogContext() .WriteTo.Async(c => c.File("Logs/logs.txt")) .WriteTo.Console() .CreateLogger(); try { Log.Information("Starting Business.Host"); CreateHostBuilder(args).Build().Run(); return 0; } catch (Exception ex) { Log.Fatal(ex, "Host terminated unexpectedly!"); return 1; } finally { //Log.CloseAndFlush(); NLog.LogManager.Shutdown(); } } internal static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup(); webBuilder.UseStaticWebAssets(); }) .UseAutofac() //.UseSerilog() .UseNLog(); } }