Program.cs 1.7 KB

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