Commit 44b5136d authored by ekjuanrejon's avatar ekjuanrejon Committed by Jan Škoruba
Browse files

Feature/appsettings refactor (#452)

* move serilog to own file

* update serilog packages

* update docker-compose and allow serilog to overwritten

* add serilog to api and sts projects

* update program cs

* update docker compose to mount file to container

* update after merge conflicts

* move to different files

* adjust start up
......@@ -31,6 +31,10 @@ services:
depends_on:
- db
- skoruba.identityserver4.sts.identity
volumes:
- "./shared/serilog.json:/app/serilog.json"
- "./shared/identitydata.json:/app/identitydata.json"
- "./shared/identityserverdata.json:/app/identityserverdata.json"
skoruba.identityserver4.admin.api:
image: ${DOCKER_REGISTRY-}skorubaidentityserver4adminapi
......@@ -49,6 +53,8 @@ services:
- "ConnectionStrings__AdminLogDbConnection=Server=db;Database=IdentityServer4Admin;User Id=sa;Password=${DB_PASSWORD:-Password_123};MultipleActiveResultSets=true"
- "ConnectionStrings__AdminAuditLogDbConnection=Server=db;Database=IdentityServer4Admin;User Id=sa;Password=${DB_PASSWORD:-Password_123};MultipleActiveResultSets=true"
container_name: skoruba-identityserver4-admin-api
volumes:
- "./shared/serilog.json:/app/serilog.json"
skoruba.identityserver4.sts.identity:
image: ${DOCKER_REGISTRY-}skorubaidentityserver4stsidentity
......@@ -66,6 +72,8 @@ services:
- "AdminConfiguration__IdentityAdminBaseUrl=http://127.0.0.1.xip.io:9000"
depends_on:
- db
volumes:
- "./shared/serilog.json:/app/serilog.json"
networks:
default:
aliases:
......
{
"IdentityData": {
"Roles": [
{
"Name": "SkorubaIdentityAdminAdministrator"
}
],
"Users": [
{
"Username": "admin",
"Password": "Pa$$word123",
"Email": "admin@skoruba.com",
"Roles": [
"SkorubaIdentityAdminAdministrator"
],
"Claims": [
{
"Type": "name",
"Value": "admin"
}
]
}
]
}
}
\ No newline at end of file
{
"IdentityServerData": {
"IdentityResources": [
{
"Name": "roles",
"Enabled": true,
"DisplayName": "Roles",
"UserClaims": [
"role"
]
},
{
"Name": "openid",
"Enabled": true,
"Required": true,
"DisplayName": "Your user identifier",
"UserClaims": [
"sub"
]
},
{
"Name": "profile",
"Enabled": true,
"DisplayName": "User profile",
"Description": "Your user profile information (first name, last name, etc.)",
"Emphasize": true,
"UserClaims": [
"name",
"family_name",
"given_name",
"middle_name",
"nickname",
"preferred_username",
"profile",
"picture",
"website",
"gender",
"birthdate",
"zoneinfo",
"locale",
"updated_at"
]
},
{
"Name": "email",
"Enabled": true,
"DisplayName": "Your email address",
"Emphasize": true,
"UserClaims": [
"email",
"email_verified"
]
},
{
"Name": "address",
"Enabled": true,
"DisplayName": "Your address",
"Emphasize": true,
"UserClaims": [
"address"
]
}
],
"ApiResources": [
{
"Name": "skoruba_identity_admin_api",
"Scopes": [
{
"Name": "skoruba_identity_admin_api",
"DisplayName": "skoruba_identity_admin_api",
"Required": true,
"UserClaims": [
"role",
"name"
]
}
]
}
],
"Clients": [
{
"ClientId": "skoruba_identity_admin",
"ClientName": "skoruba_identity_admin",
"ClientUri": "http://localhost:9000",
"AllowedGrantTypes": [
"hybrid"
],
"ClientSecrets": [
{
"Value": "skoruba_admin_client_secret"
}
],
"RedirectUris": [
"http://localhost:9000/signin-oidc"
],
"FrontChannelLogoutUri": "http://localhost:9000/signout-oidc",
"PostLogoutRedirectUris": [
"http://localhost:9000/signout-callback-oidc"
],
"AllowedCorsOrigins": [
"http://localhost:9000"
],
"AllowedScopes": [
"openid",
"email",
"profile",
"roles"
]
},
{
"ClientId": "skoruba_identity_admin_api_swaggerui",
"ClientName": "skoruba_identity_admin_api_swaggerui",
"AllowedGrantTypes": [
"implicit"
],
"RedirectUris": [
"http://localhost:5001/swagger/oauth2-redirect.html"
],
"AllowedScopes": [
"skoruba_identity_admin_api"
],
"AllowAccessTokensViaBrowser": true
}
]
}
}
\ No newline at end of file
{
"Serilog": {
"Using": [ "Serilog.Sinks.Console" ],
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Microsoft": "Information",
"System": "Error"
}
},
"WriteTo": [
{
"Args": {
"outputTemplate": "[{Timestamp:o}][{Level:u4}][{ThreadId}][{SourceContext}] {Message}{NewLine}{Exception}"
},
"Name": "Console"
},
{
"Args": {
"buffered": true,
"flushToDiskInterval": 15,
"outputTemplate": "[{Timestamp:o}][{Level:u4}][{ThreadId}][{SourceContext}] {Message}{NewLine}{Exception}",
"pathFormat": "Logs//log-{Date}.txt",
"retainedFileCountLimit": 3,
"textFormatter": "Serilog.Formatting.Json.JsonFormatter, Serilog"
},
"Name": "RollingFile"
}
],
"Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ],
"Properties": {
"Product": "Admin",
"Env": ""
}
}
}
\ No newline at end of file
using System;
using System.IO;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Serilog;
namespace Skoruba.IdentityServer4.Admin.Api
......@@ -12,40 +10,32 @@ namespace Skoruba.IdentityServer4.Admin.Api
{
public static void Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(Configuration)
.CreateLogger();
try
{
CreateHostBuilder(args).Build().Run();
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
}
finally
{
Log.CloseAndFlush();
throw ex;
}
}
public static IConfiguration Configuration { get; } = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging((hostingContext, logging) => {
logging.ClearProviders();
var logger = new LoggerConfiguration().ReadFrom.Configuration(hostingContext.Configuration).CreateLogger();
logging.AddSerilog(logger);
})
.ConfigureAppConfiguration((hostContext, configApp) =>
{
configApp.AddJsonFile($"serilog.json", optional: true);
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(options => options.AddServerHeader = false);
webBuilder.UseStartup<Startup>();
})
.UseSerilog((hostContext, loggerConfig) =>
{
loggerConfig
.ReadFrom.Configuration(hostContext.Configuration)
.Enrich.WithProperty("ComponentName", hostContext.HostingEnvironment.ApplicationName);
});
}
}
}
\ No newline at end of file
......@@ -32,9 +32,13 @@
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="5.0.0-rc4" />
<PackageReference Include="Swashbuckle.AspNetCore.Swagger" Version="5.0.0-rc4" />
<PackageReference Include="Serilog.AspNetCore" Version="3.2.0" />
<PackageReference Include="Serilog" Version="2.9.0" />
<PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="3.0.0" />
<PackageReference Include="Serilog.Enrichers.Environment" Version="2.1.3" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.1.0" />
<PackageReference Include="Serilog.Sinks.File" Version="4.1.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.RollingFile" Version="3.3.0" />
<PackageReference Include="Serilog.Sinks.MSSqlServer" Version="5.1.3" />
</ItemGroup>
......
{
"Serilog": {
"MinimumLevel": {
"Default": "Error",
"Override": {
"Skoruba": "Information"
}
},
"WriteTo": [
{
"Name": "Console"
},
{
"Name": "File",
"Args": {
"path": "Log\\skoruba_admin.txt",
"rollingInterval": "Day"
}
},
{
"Name": "MSSqlServer",
"Args": {
"connectionString": "Server=(localdb)\\mssqllocaldb;Database=IdentityServer4Admin;Trusted_Connection=True;MultipleActiveResultSets=true",
"tableName": "Log",
"columnOptionsSection": {
"addStandardColumns": [ "LogEvent" ],
"removeStandardColumns": [ "Properties" ]
}
}
}
]
}
}
\ No newline at end of file
......@@ -4,7 +4,6 @@ using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;
using Microsoft.Extensions.Hosting;
using Serilog;
using Skoruba.IdentityServer4.Admin.EntityFramework.Shared.DbContexts;
......@@ -19,10 +18,6 @@ namespace Skoruba.IdentityServer4.Admin
public static async Task Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(Configuration)
.CreateLogger();
try
{
var seed = args.Any(x => x == SeedArgs);
......@@ -44,32 +39,30 @@ namespace Skoruba.IdentityServer4.Admin
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
}
finally
{
Log.CloseAndFlush();
throw ex;
}
}
public static IConfiguration Configuration { get; } = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging((hostingContext, logging) =>
{
logging.ClearProviders();
var logger = new LoggerConfiguration().ReadFrom.Configuration(hostingContext.Configuration).CreateLogger();
logging.AddSerilog(logger);
})
.ConfigureAppConfiguration((hostContext, configApp) =>
{
configApp.AddJsonFile($"serilog.json", optional: true);
configApp.AddJsonFile($"identitydata.json", optional: true);
configApp.AddJsonFile($"identityserverdata.json", optional: true);
configApp.AddEnvironmentVariables();
configApp.AddCommandLine(args);
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(options => options.AddServerHeader = false);
webBuilder.UseStartup<Startup>();
})
.UseSerilog((hostContext, loggerConfig) =>
{
loggerConfig
.ReadFrom.Configuration(hostContext.Configuration)
.Enrich.WithProperty("ComponentName", hostContext.HostingEnvironment.ApplicationName);
});
}
}
\ No newline at end of file
......@@ -33,10 +33,13 @@
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.9.5" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="3.1.0" />
<PackageReference Include="NWebsec.AspNetCore.Middleware" Version="2.0.0" />
<PackageReference Include="Serilog.AspNetCore" Version="3.2.0" />
<PackageReference Include="Serilog" Version="2.9.0" />
<PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="3.0.0" />
<PackageReference Include="Serilog.Enrichers.Environment" Version="2.1.3" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.1.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.File" Version="4.1.0" />
<PackageReference Include="Serilog.Sinks.RollingFile" Version="3.3.0" />
<PackageReference Include="Serilog.Sinks.MSSqlServer" Version="5.1.3" />
</ItemGroup>
......
{
"ConnectionStrings": {
"ConfigurationDbConnection": "Server=(localdb)\\mssqllocaldb;Database=IdentityServer4Admin;Trusted_Connection=True;MultipleActiveResultSets=true",
"PersistedGrantDbConnection": "Server=(localdb)\\mssqllocaldb;Database=IdentityServer4Admin;Trusted_Connection=True;MultipleActiveResultSets=true",
"IdentityDbConnection": "Server=(localdb)\\mssqllocaldb;Database=IdentityServer4Admin;Trusted_Connection=True;MultipleActiveResultSets=true",
"AdminLogDbConnection": "Server=(localdb)\\mssqllocaldb;Database=IdentityServer4Admin;Trusted_Connection=True;MultipleActiveResultSets=true",
"AdminAuditLogDbConnection": "Server=(localdb)\\mssqllocaldb;Database=IdentityServer4Admin;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"DatabaseProviderConfiguration": {
"ProviderType": "SqlServer"
},
"AdminConfiguration": {
"PageTitle": "Skoruba IdentityServer4 Admin",
"FaviconUri": "/favicon.ico",
"IdentityAdminRedirectUri": "http://localhost:9000/signin-oidc",
"IdentityServerBaseUrl": "http://localhost:5000",
"IdentityAdminCookieName": "IdentityServerAdmin",
"IdentityAdminCookieExpiresUtcHours": 12,
"RequireHttpsMetadata": false,
"TokenValidationClaimName": "name",
"TokenValidationClaimRole": "role",
"ClientId": "skoruba_identity_admin",
"ClientSecret": "skoruba_admin_client_secret",
"OidcResponseType": "code id_token",
"Scopes": [
"openid",
"profile",
"email",
"roles"
],
"AdministrationRole": "SkorubaIdentityAdminAdministrator"
},
"AuditLoggingConfiguration": {
"Source": "IdentityServer.Admin.Web",
"SubjectIdentifierClaim": "sub",
"SubjectNameClaim": "name",
"IncludeFormVariables": false
},
"CultureConfiguration": {
"Cultures": [ ],
"DefaultCulture": null
},
"Serilog": {
"MinimumLevel": {
"Default": "Error",
"Override": {
"Skoruba": "Information"
}
},
"WriteTo": [
{
"Name": "Console"
},
{
"Name": "File",
"Args": {
"path": "Log\\skoruba_admin.txt",
"rollingInterval": "Day"
}
},
{
"Name": "MSSqlServer",
"Args": {
"connectionString": "Server=(localdb)\\mssqllocaldb;Database=IdentityServer4Admin;Trusted_Connection=True;MultipleActiveResultSets=true",
"tableName": "Log",
"columnOptionsSection": {
"addStandardColumns": [ "LogEvent" ],
"removeStandardColumns": [ "Properties" ]
}
}
}
]
},
"IdentityData": {
"Roles": [
{
"Name": "SkorubaIdentityAdminAdministrator"
}
],
"Users": [
{
"Username": "admin",
"Password": "Pa$$word123",
"Email": "admin@skoruba.com",
"Roles": [
"SkorubaIdentityAdminAdministrator"
],
"Claims": [
{
"Type": "name",
"Value": "admin"
}
]
}
]
},
"IdentityServerData": {
"IdentityResources": [
{
"Name": "roles",
"Enabled": true,
"DisplayName": "Roles",
"UserClaims": [
"role"
]
},
{
"Name": "openid",
"Enabled": true,
"Required": true,
"DisplayName": "Your user identifier",
"UserClaims": [
"sub"
]
},
{
"Name": "profile",
"Enabled": true,
"DisplayName": "User profile",
"Description": "Your user profile information (first name, last name, etc.)",
"Emphasize": true,
"UserClaims": [
"name",
"family_name",
"given_name",
"middle_name",
"nickname",
"preferred_username",
"profile",
"picture",
"website",
"gender",
"birthdate",
"zoneinfo",
"locale",
"updated_at"
]
},
{
"Name": "email",
"Enabled": true,
"DisplayName": "Your email address",
"Emphasize": true,
"UserClaims": [
"email",
"email_verified"
]
},
{
"Name": "address",
"Enabled": true,
"DisplayName": "Your address",
"Emphasize": true,
"UserClaims": [
"address"
]
}
],
"ApiResources": [
{
"Name": "skoruba_identity_admin_api",
"Scopes": [
{
"Name": "skoruba_identity_admin_api",
"DisplayName": "skoruba_identity_admin_api",
"Required": true,
"UserClaims": [
"role",
"name"
]
}
]
}
],
"Clients": [
{
"ClientId": "skoruba_identity_admin",
"ClientName": "skoruba_identity_admin",
"ClientUri": "http://localhost:9000",
"AllowedGrantTypes": [
"hybrid"
],
"ClientSecrets": [
{
"Value": "skoruba_admin_client_secret"
}
],
"RedirectUris": [
"http://localhost:9000/signin-oidc"
],
"FrontChannelLogoutUri": "http://localhost:9000/signout-oidc",
"PostLogoutRedirectUris": [
"http://localhost:9000/signout-callback-oidc"
],
"AllowedCorsOrigins": [
"http://localhost:9000"
],
"AllowedScopes": [
"openid",
"email",
"profile",
"roles"
]
},
{
"ClientId": "skoruba_identity_admin_api_swaggerui",
"ClientName": "skoruba_identity_admin_api_swaggerui",
"AllowedGrantTypes": [
"implicit"
],
"RedirectUris": [
"http://localhost:5001/swagger/oauth2-redirect.html"
],
"AllowedScopes": [
"skoruba_identity_admin_api"
],
"AllowAccessTokensViaBrowser": true
}
]
}
"ConnectionStrings": {
"ConfigurationDbConnection": "Server=(localdb)\\mssqllocaldb;Database=IdentityServer4Admin;Trusted_Connection=True;MultipleActiveResultSets=true",
"PersistedGrantDbConnection": "Server=(localdb)\\mssqllocaldb;Database=IdentityServer4Admin;Trusted_Connection=True;MultipleActiveResultSets=true",
"IdentityDbConnection": "Server=(localdb)\\mssqllocaldb;Database=IdentityServer4Admin;Trusted_Connection=True;MultipleActiveResultSets=true",
"AdminLogDbConnection": "Server=(localdb)\\mssqllocaldb;Database=IdentityServer4Admin;Trusted_Connection=True;MultipleActiveResultSets=true",
"AdminAuditLogDbConnection": "Server=(localdb)\\mssqllocaldb;Database=IdentityServer4Admin;Trusted_Connection=True;MultipleActiveResultSets=true"
},
"DatabaseProviderConfiguration": {
"ProviderType": "SqlServer"
},
"AdminConfiguration": {
"PageTitle": "Skoruba IdentityServer4 Admin",
"FaviconUri": "/favicon.ico",
"IdentityAdminRedirectUri": "http://localhost:9000/signin-oidc",
"IdentityServerBaseUrl": "http://localhost:5000",
"IdentityAdminCookieName": "IdentityServerAdmin",
"IdentityAdminCookieExpiresUtcHours": 12,
"RequireHttpsMetadata": false,
"TokenValidationClaimName": "name",
"TokenValidationClaimRole": "role",
"ClientId": "skoruba_identity_admin",
"ClientSecret": "skoruba_admin_client_secret",
"OidcResponseType": "code id_token",
"Scopes": [
"openid",
"profile",
"email",
"roles"
],
"AdministrationRole": "SkorubaIdentityAdminAdministrator"
},
"AuditLoggingConfiguration": {
"Source": "IdentityServer.Admin.Web",
"SubjectIdentifierClaim": "sub",
"SubjectNameClaim": "name",
"IncludeFormVariables": false
},
"CultureConfiguration": {
"Cultures": [],
"DefaultCulture": null
}
}
\ No newline at end of file
{
"IdentityData": {
"Roles": [
{
"Name": "SkorubaIdentityAdminAdministrator"
}
],
"Users": [
{
"Username": "admin",
"Password": "Pa$$word123",
"Email": "admin@skoruba.com",
"Roles": [
"SkorubaIdentityAdminAdministrator"
],
"Claims": [
{
"Type": "name",
"Value": "admin"
}
]
}
]
}
}
\ No newline at end of file
{
"IdentityServerData": {
"IdentityResources": [
{
"Name": "roles",
"Enabled": true,
"DisplayName": "Roles",
"UserClaims": [
"role"
]
},
{
"Name": "openid",
"Enabled": true,
"Required": true,
"DisplayName": "Your user identifier",
"UserClaims": [
"sub"
]
},
{
"Name": "profile",
"Enabled": true,
"DisplayName": "User profile",
"Description": "Your user profile information (first name, last name, etc.)",
"Emphasize": true,
"UserClaims": [
"name",
"family_name",
"given_name",
"middle_name",
"nickname",
"preferred_username",
"profile",
"picture",
"website",
"gender",
"birthdate",
"zoneinfo",
"locale",
"updated_at"
]
},
{
"Name": "email",
"Enabled": true,
"DisplayName": "Your email address",
"Emphasize": true,
"UserClaims": [
"email",
"email_verified"
]
},
{
"Name": "address",
"Enabled": true,
"DisplayName": "Your address",
"Emphasize": true,
"UserClaims": [
"address"
]
}
],
"ApiResources": [
{
"Name": "skoruba_identity_admin_api",
"Scopes": [
{
"Name": "skoruba_identity_admin_api",
"DisplayName": "skoruba_identity_admin_api",
"Required": true,
"UserClaims": [
"role",
"name"
]
}
]
}
],
"Clients": [
{
"ClientId": "skoruba_identity_admin",
"ClientName": "skoruba_identity_admin",
"ClientUri": "http://localhost:9000",
"AllowedGrantTypes": [
"hybrid"
],
"ClientSecrets": [
{
"Value": "skoruba_admin_client_secret"
}
],
"RedirectUris": [
"http://localhost:9000/signin-oidc"
],
"FrontChannelLogoutUri": "http://localhost:9000/signout-oidc",
"PostLogoutRedirectUris": [
"http://localhost:9000/signout-callback-oidc"
],
"AllowedCorsOrigins": [
"http://localhost:9000"
],
"AllowedScopes": [
"openid",
"email",
"profile",
"roles"
]
},
{
"ClientId": "skoruba_identity_admin_api_swaggerui",
"ClientName": "skoruba_identity_admin_api_swaggerui",
"AllowedGrantTypes": [
"implicit"
],
"RedirectUris": [
"http://localhost:5001/swagger/oauth2-redirect.html"
],
"AllowedScopes": [
"skoruba_identity_admin_api"
],
"AllowAccessTokensViaBrowser": true
}
]
}
}
\ No newline at end of file
{
"Serilog": {
"MinimumLevel": {
"Default": "Error",
"Override": {
"Skoruba": "Information"
}
},
"WriteTo": [
{
"Name": "Console"
},
{
"Name": "File",
"Args": {
"path": "Log\\skoruba_admin.txt",
"rollingInterval": "Day"
}
},
{
"Name": "MSSqlServer",
"Args": {
"connectionString": "Server=(localdb)\\mssqllocaldb;Database=IdentityServer4Admin;Trusted_Connection=True;MultipleActiveResultSets=true",
"tableName": "Log",
"columnOptionsSection": {
"addStandardColumns": [ "LogEvent" ],
"removeStandardColumns": [ "Properties" ]
}
}
}
]
}
}
\ No newline at end of file
......@@ -12,40 +12,32 @@ namespace Skoruba.IdentityServer4.STS.Identity
{
public static void Main(string[] args)
{
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(Configuration)
.CreateLogger();
try
{
CreateHostBuilder(args).Build().Run();
}
catch (Exception ex)
{
Log.Fatal(ex, "Host terminated unexpectedly");
}
finally
{
Log.CloseAndFlush();
throw ex;
}
}
public static IConfiguration Configuration { get; } = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureLogging((hostingContext, logging) => {
logging.ClearProviders();
var logger = new LoggerConfiguration().ReadFrom.Configuration(hostingContext.Configuration).CreateLogger();
logging.AddSerilog(logger);
})
.ConfigureAppConfiguration((hostContext, configApp) =>
{
configApp.AddJsonFile($"serilog.json", optional: true);
})
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.ConfigureKestrel(options => options.AddServerHeader = false);
webBuilder.UseStartup<Startup>();
})
.UseSerilog((hostContext, loggerConfig) =>
{
loggerConfig
.ReadFrom.Configuration(hostContext.Configuration)
.Enrich.WithProperty("ComponentName", hostContext.HostingEnvironment.ApplicationName);
});
}
}
}
\ No newline at end of file
......@@ -31,10 +31,13 @@
<PackageReference Include="IdentityServer4.EntityFramework" Version="3.1.0" />
<PackageReference Include="NWebsec.AspNetCore.Middleware" Version="2.0.0" />
<PackageReference Include="Sendgrid" Version="9.12.0" />
<PackageReference Include="Serilog.AspNetCore" Version="3.2.0" />
<PackageReference Include="Serilog" Version="2.9.0" />
<PackageReference Include="Serilog.Enrichers.Thread" Version="3.1.0" />
<PackageReference Include="Serilog.Extensions.Hosting" Version="3.0.0" />
<PackageReference Include="Serilog.Enrichers.Environment" Version="2.1.3" />
<PackageReference Include="Serilog.Settings.Configuration" Version="3.1.0" />
<PackageReference Include="Serilog.Sinks.Console" Version="3.1.1" />
<PackageReference Include="Serilog.Sinks.File" Version="4.1.0" />
<PackageReference Include="Serilog.Sinks.RollingFile" Version="3.3.0" />
<PackageReference Include="Serilog.Sinks.MSSqlServer" Version="5.1.3" />
<PackageReference Include="Skoruba.AuditLogging.EntityFramework" Version="1.0.0-beta7" />
</ItemGroup>
......
{
"Serilog": {
"MinimumLevel": {
"Default": "Error",
"Override": {
"Skoruba": "Information"
}
},
"WriteTo": [
{
"Name": "Console"
},
{
"Name": "File",
"Args": {
"path": "Log\\skoruba_admin.txt",
"rollingInterval": "Day"
}
},
{
"Name": "MSSqlServer",
"Args": {
"connectionString": "Server=(localdb)\\mssqllocaldb;Database=IdentityServer4Admin;Trusted_Connection=True;MultipleActiveResultSets=true",
"tableName": "Log",
"columnOptionsSection": {
"addStandardColumns": [ "LogEvent" ],
"removeStandardColumns": [ "Properties" ]
}
}
}
]
}
}
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment