Program.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using System;
  2. using System.IO;
  3. using Microsoft.AspNetCore.Hosting;
  4. using Microsoft.Extensions.Configuration;
  5. using Microsoft.Extensions.Hosting;
  6. using NLog;
  7. using NLog.Web;
  8. using Serilog;
  9. using Serilog.Events;
  10. using Serilog.Sinks.Elasticsearch;
  11. namespace Business
  12. {
  13. public class Program
  14. {
  15. public static int Main(string[] args)
  16. {
  17. var configuration = new ConfigurationBuilder()
  18. .SetBasePath(Directory.GetCurrentDirectory())
  19. .AddJsonFile("appsettings.json")
  20. .AddEnvironmentVariables()
  21. .Build();
  22. NLog.Extensions.Logging.ConfigSettingLayoutRenderer.DefaultConfiguration = configuration;
  23. var appBasePath = System.IO.Directory.GetCurrentDirectory();
  24. NLog.GlobalDiagnosticsContext.Set("appbasepath", appBasePath);
  25. var logger = LogManager.LoadConfiguration("nlog.config").GetCurrentClassLogger();
  26. Log.Logger = new LoggerConfiguration()
  27. #if DEBUG
  28. .MinimumLevel.Debug()
  29. #else
  30. .MinimumLevel.Information()
  31. #endif
  32. .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
  33. .Enrich.FromLogContext()
  34. .WriteTo.Async(c => c.File("Logs/logs.txt"))
  35. .WriteTo.Console()
  36. .CreateLogger();
  37. try
  38. {
  39. Log.Information("Starting Business.Host");
  40. CreateHostBuilder(args).Build().Run();
  41. return 0;
  42. }
  43. catch (Exception ex)
  44. {
  45. Log.Fatal(ex, "Host terminated unexpectedly!");
  46. return 1;
  47. }
  48. finally
  49. {
  50. //Log.CloseAndFlush();
  51. NLog.LogManager.Shutdown();
  52. }
  53. }
  54. internal static IHostBuilder CreateHostBuilder(string[] args) =>
  55. Host.CreateDefaultBuilder(args)
  56. .ConfigureWebHostDefaults(webBuilder =>
  57. {
  58. webBuilder.UseStartup<Startup>();
  59. webBuilder.UseStaticWebAssets();
  60. })
  61. .UseAutofac()
  62. //.UseSerilog()
  63. .UseNLog();
  64. }
  65. }