aboutsummaryrefslogtreecommitdiffstats
path: root/src/Program.cs
blob: a723a0e3bafa4b68ee5b3217175cda866220261d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System;
using System.Reflection;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Serilog;

namespace VSH;

public static class Program
{
	public static int Main(string[] args) {
		var config = new ConfigurationBuilder()
					 .AddUserSecrets(Assembly.GetExecutingAssembly(), true)
					 .AddEnvironmentVariables()
					 .Build();

		Log.Logger = new LoggerConfiguration()
					 .Enrich.FromLogContext()
					 .WriteTo.Console()
#if !DEBUG
						 .WriteTo.Seq(config.GetValue<string>("SEQ_API_URL"), apiKey: config.GetValue<string>("SEQ_API_KEY"))
#endif
					 .CreateLogger();

		try {
			Log.Information("Starting web host");
			CreateHostBuilder(args).Build().Run();
			return 0;
		} catch (Exception ex) {
			Log.Fatal(ex, "Host terminated unexpectedly");
			return 1;
		} finally {
			Log.CloseAndFlush();
		}
	}

	private static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args)
																		.UseSerilog()
																		.ConfigureWebHostDefaults(webBuilder => {
																			webBuilder.UseKestrel(o => o.AddServerHeader = false);
																			webBuilder.UseStartup<Startup>();
																		});
}