Program.cs 2.2 KB

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