Program.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. using System.Text.Json.Serialization;
  2. using System.Xml.Linq;
  3. using Hotline.Api;
  4. using Newtonsoft.Json;
  5. using RestSharp;
  6. using Serilog;
  7. using Tr.Sdk;
  8. Log.Logger = new LoggerConfiguration()
  9. .WriteTo.Console()
  10. .CreateBootstrapLogger();
  11. Log.Information("Hotline service is Starting up");
  12. try
  13. {
  14. var builder = WebApplication.CreateBuilder(args);
  15. builder.Host
  16. .ConfigureAppConfiguration((hostBuilderContext, configBuilder) =>
  17. {
  18. var path = Path.Combine(Directory.GetCurrentDirectory(), "config");
  19. configBuilder.SetBasePath(path)
  20. #if DEBUG
  21. .AddJsonFile("appsettings.shared.Development.json", true, true)
  22. #else
  23. .AddJsonFile("appsettings.shared.json", true, true)
  24. #endif
  25. .AddJsonFile("appsettings.json", false, true)
  26. .AddJsonFile($"appsettings.{hostBuilderContext.HostingEnvironment.EnvironmentName}.json", true, true)
  27. .AddEnvironmentVariables()
  28. .AddCommandLine(args)
  29. ;
  30. })
  31. .UseSerilog((ctx, lc) => lc
  32. //.WriteTo.Console(outputTemplate: "[{Timestamp:HH:mm:ss} {Level}] {SourceContext}{NewLine}{Message:lj}{NewLine}{Exception}{NewLine}")
  33. .Enrich.FromLogContext()
  34. .ReadFrom.Configuration(ctx.Configuration))
  35. ;
  36. builder
  37. .ConfigureServices()
  38. .ConfigurePipelines()
  39. .Run();
  40. }
  41. catch (Exception ex)
  42. {
  43. Log.Fatal(ex, "Unhandled exception");
  44. }
  45. finally
  46. {
  47. Log.Information("Shut down complete");
  48. Log.CloseAndFlush();
  49. }