Program.cs 1.9 KB

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