Add new Serilog configuration to Identity

This commit is contained in:
Hinton
2022-01-13 18:30:39 +01:00
parent 400a2f64ee
commit d9667ea6e5
4 changed files with 46 additions and 43 deletions

View File

@@ -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<Startup>();
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<Startup>();
})
.Build()
.Run();
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
}
finally
{
Log.CloseAndFlush();
}
}
}
}

View File

@@ -26,5 +26,10 @@
"storage": {
"connectionString": "UseDevelopmentStorage=true"
}
},
"Serilog": {
"WriteTo": [
{ "Name": "Console" }
]
}
}

View File

@@ -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"
}
}
}

View File

@@ -90,5 +90,11 @@
},
"IpRateLimitPolicies": {
"IpRules": []
},
"Serilog": {
"Enrich": [ "FromLogContext" ],
"Properties": {
"Project": "Identity"
}
}
}