|
15 | 15 | Log.Logger = new LoggerConfiguration() |
16 | 16 | .ReadFrom.Configuration(config) |
17 | 17 | .WriteTo.Console(outputTemplate: logFormat, formatProvider: CultureInfo.InvariantCulture) |
18 | | - .CreateLogger(); |
| 18 | + .CreateBootstrapLogger(); |
19 | 19 |
|
20 | | -var builder = WebApplication.CreateBuilder(args); |
| 20 | +try |
| 21 | +{ |
| 22 | + Log.Information("Starting up the application"); |
21 | 23 |
|
22 | | -var keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME"); |
| 24 | + var builder = WebApplication.CreateBuilder(args); |
23 | 25 |
|
24 | | -if (!string.IsNullOrEmpty(keyVaultName)) |
25 | | -{ |
26 | | - var keyVaultUri = new Uri($"https://{keyVaultName}.vault.azure.net/"); |
27 | | - builder.Configuration.AddAzureKeyVault(keyVaultUri, new DefaultAzureCredential()); |
28 | | -} |
| 26 | + if (builder.Environment.IsProduction()) |
| 27 | + { |
| 28 | + var keyVaultName = Environment.GetEnvironmentVariable("KEY_VAULT_NAME"); |
| 29 | + var keyVaultUri = new Uri($"https://{keyVaultName}.vault.azure.net/"); |
| 30 | + builder.Configuration.AddAzureKeyVault(keyVaultUri, new DefaultAzureCredential()); |
29 | 31 |
|
30 | | -builder.Services.ConfigureServices(); |
| 32 | + Log.Logger = new LoggerConfiguration() |
| 33 | + .ReadFrom.Configuration(config) |
| 34 | + .WriteTo.Console(outputTemplate: logFormat, formatProvider: CultureInfo.InvariantCulture) |
| 35 | + .WriteTo.ApplicationInsights(TelemetryConverter.Traces) |
| 36 | + .CreateLogger(); |
| 37 | + } |
31 | 38 |
|
32 | | -var app = builder.Build(); |
| 39 | + builder.Services.ConfigureServices(); |
33 | 40 |
|
34 | | -app.ConfigureEndpoints(); |
| 41 | + var app = builder.Build(); |
35 | 42 |
|
36 | | -app.ConfigureMiddleware(app.Environment); |
| 43 | + app.ConfigureEndpoints(); |
37 | 44 |
|
38 | | -await app.RunAsync(); |
| 45 | + app.ConfigureMiddleware(app.Environment); |
| 46 | + |
| 47 | + await app.RunAsync(); |
| 48 | +} |
| 49 | +catch (Exception ex) |
| 50 | +{ |
| 51 | + const string message = "Application terminated unexpectedly"; |
| 52 | + Log.Fatal(ex, message); |
| 53 | + throw new InvalidOperationException(message, ex); |
| 54 | +} |
| 55 | +finally |
| 56 | +{ |
| 57 | + await Log.CloseAndFlushAsync(); |
| 58 | +} |
39 | 59 |
|
40 | 60 | public partial class Program { } // Reference for tests |
0 commit comments