diff --git a/src/Identity/Program.cs b/src/Identity/Program.cs index a1397cd4ce..923adcad01 100644 --- a/src/Identity/Program.cs +++ b/src/Identity/Program.cs @@ -1,8 +1,8 @@ -using AspNetCoreRateLimit; +using System; using Bit.Core.Utilities; using Microsoft.AspNetCore.Hosting; using Microsoft.Extensions.Hosting; -using Serilog.Events; +using Serilog; namespace Bit.Identity { @@ -10,33 +10,34 @@ namespace Bit.Identity { public static void Main(string[] args) { - Host - .CreateDefaultBuilder(args) - .ConfigureCustomAppConfiguration(args) - .ConfigureWebHostDefaults(webBuilder => - { - webBuilder.UseStartup(); - webBuilder.ConfigureLogging((hostingContext, logging) => - logging.AddSerilog(hostingContext, e => - { - var context = e.Properties["SourceContext"].ToString(); - if (context.Contains(typeof(IpRateLimitMiddleware).FullName) && - e.Level == LogEventLevel.Information) - { - return true; - } + Log.Logger = new LoggerConfiguration() + .WriteTo.Console() + .CreateBootstrapLogger(); - if (context.Contains("IdentityServer4.Validation.TokenValidator") || - context.Contains("IdentityServer4.Validation.TokenRequestValidator")) - { - return e.Level > LogEventLevel.Error; - } - - return e.Level >= LogEventLevel.Error; - })); - }) - .Build() - .Run(); + try + { + Host + .CreateDefaultBuilder(args) + .ConfigureCustomAppConfiguration(args) + .UseSerilog((context, configuration) => + { + configuration.ReadFrom.Configuration(context.Configuration); + }) + .ConfigureWebHostDefaults(webBuilder => + { + webBuilder.UseStartup(); + }) + .Build() + .Run(); + } + catch (Exception ex) + { + Log.Fatal(ex, "Host terminated unexpectedly"); + } + finally + { + Log.CloseAndFlush(); + } } } } diff --git a/src/Identity/appsettings.Development.json b/src/Identity/appsettings.Development.json index 950c728187..2e162080fa 100644 --- a/src/Identity/appsettings.Development.json +++ b/src/Identity/appsettings.Development.json @@ -26,5 +26,10 @@ "storage": { "connectionString": "UseDevelopmentStorage=true" } + }, + "Serilog": { + "WriteTo": [ + { "Name": "Console" } + ] } } diff --git a/src/Identity/appsettings.Production.json b/src/Identity/appsettings.Production.json index 4f05fcec9f..d5c951d5e9 100644 --- a/src/Identity/appsettings.Production.json +++ b/src/Identity/appsettings.Production.json @@ -18,21 +18,12 @@ "production": true } }, - "Logging": { - "IncludeScopes": false, - "LogLevel": { - "Default": "Debug", - "System": "Information", - "Microsoft": "Information" - }, - "Console": { - "IncludeScopes": true, - "LogLevel": { - "Default": "Warning", - "System": "Warning", - "Microsoft": "Warning", - "Microsoft.Hosting.Lifetime": "Information" - } + "Serilog": { + "MinimumLevel": { + "Default": "Error", + "AspNetCoreRateLimit.IpRateLimitMiddleware": "Information", + "IdentityServer4.Validation.TokenValidator": "Fatal", + "IdentityServer4.Validation.TokenRequestValidator": "Fatal" } } } diff --git a/src/Identity/appsettings.json b/src/Identity/appsettings.json index fb3469b5fe..6b1dcbb1b9 100644 --- a/src/Identity/appsettings.json +++ b/src/Identity/appsettings.json @@ -90,5 +90,11 @@ }, "IpRateLimitPolicies": { "IpRules": [] + }, + "Serilog": { + "Enrich": [ "FromLogContext" ], + "Properties": { + "Project": "Identity" + } } }