mirror of
https://github.com/collinbarrett/FilterLists.git
synced 2026-03-11 09:04:27 +00:00
feat(services): ✨ add Serilog
This commit is contained in:
parent
8f9a193f0b
commit
e8d5db7121
20 changed files with 222 additions and 70 deletions
6
.github/dependabot.yml
vendored
6
.github/dependabot.yml
vendored
|
|
@ -1,5 +1,11 @@
|
|||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: nuget
|
||||
directory: "/services/sharedKernel/src/FilterLists.SharedKernel.Logging"
|
||||
schedule:
|
||||
interval: daily
|
||||
time: "11:00"
|
||||
open-pull-requests-limit: 99
|
||||
- package-ecosystem: docker
|
||||
directory: "/services/archival/src/FilterLists.Archival.Api"
|
||||
schedule:
|
||||
|
|
|
|||
|
|
@ -54,9 +54,13 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Archival", "Archival", "{5E
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FilterLists.Archival.Api", "archival\src\FilterLists.Archival.Api\FilterLists.Archival.Api.csproj", "{F625C241-0501-4AEB-8B82-609C93EE6B7D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FilterLists.Archival.Application", "archival\src\FilterLists.Archival.Application\FilterLists.Archival.Application.csproj", "{11669839-E666-477B-A1B6-276041AD3768}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FilterLists.Archival.Application", "archival\src\FilterLists.Archival.Application\FilterLists.Archival.Application.csproj", "{11669839-E666-477B-A1B6-276041AD3768}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FilterLists.Archival.Infrastructure", "archival\src\FilterLists.Archival.Infrastructure\FilterLists.Archival.Infrastructure.csproj", "{A0B77015-E8C4-41D3-B63D-BF818026298C}"
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FilterLists.Archival.Infrastructure", "archival\src\FilterLists.Archival.Infrastructure\FilterLists.Archival.Infrastructure.csproj", "{A0B77015-E8C4-41D3-B63D-BF818026298C}"
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "SharedKernel", "SharedKernel", "{59197818-6C72-4A3C-A595-49F3D7D2EB18}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FilterLists.SharedKernel.Logging", "sharedKernel\src\FilterLists.SharedKernel.Logging\FilterLists.SharedKernel.Logging.csproj", "{5485F55E-DFED-4DA0-8A00-220B081FAC96}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
|
|
@ -104,6 +108,10 @@ Global
|
|||
{A0B77015-E8C4-41D3-B63D-BF818026298C}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A0B77015-E8C4-41D3-B63D-BF818026298C}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A0B77015-E8C4-41D3-B63D-BF818026298C}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{5485F55E-DFED-4DA0-8A00-220B081FAC96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{5485F55E-DFED-4DA0-8A00-220B081FAC96}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{5485F55E-DFED-4DA0-8A00-220B081FAC96}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{5485F55E-DFED-4DA0-8A00-220B081FAC96}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
@ -119,6 +127,7 @@ Global
|
|||
{F625C241-0501-4AEB-8B82-609C93EE6B7D} = {5E52FEF9-9605-4ACB-8A42-A20E06331599}
|
||||
{11669839-E666-477B-A1B6-276041AD3768} = {5E52FEF9-9605-4ACB-8A42-A20E06331599}
|
||||
{A0B77015-E8C4-41D3-B63D-BF818026298C} = {5E52FEF9-9605-4ACB-8A42-A20E06331599}
|
||||
{5485F55E-DFED-4DA0-8A00-220B081FAC96} = {59197818-6C72-4A3C-A595-49F3D7D2EB18}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {758B57EF-7505-4BE2-90A2-E2DE2EC32909}
|
||||
|
|
|
|||
|
|
@ -6,18 +6,20 @@ WORKDIR /app
|
|||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1.401-alpine AS build
|
||||
|
||||
# restore API
|
||||
WORKDIR /src
|
||||
COPY archival/src/FilterLists.Archival.Infrastructure/FilterLists.Archival.Infrastructure.csproj FilterLists.Archival.Infrastructure/
|
||||
COPY archival/src/FilterLists.Archival.Application/FilterLists.Archival.Application.csproj FilterLists.Archival.Application/
|
||||
WORKDIR /src/FilterLists.Archival.Api
|
||||
WORKDIR /app
|
||||
COPY sharedKernel/src/FilterLists.SharedKernel.Logging/FilterLists.SharedKernel.Logging.csproj sharedKernel/src/FilterLists.SharedKernel.Logging/
|
||||
COPY archival/src/FilterLists.Archival.Infrastructure/FilterLists.Archival.Infrastructure.csproj archival/src/FilterLists.Archival.Infrastructure/
|
||||
COPY archival/src/FilterLists.Archival.Application/FilterLists.Archival.Application.csproj archival/src/FilterLists.Archival.Application/
|
||||
WORKDIR /app/archival/src/FilterLists.Archival.Api
|
||||
COPY archival/src/FilterLists.Archival.Api/FilterLists.Archival.Api.csproj .
|
||||
RUN dotnet restore
|
||||
|
||||
# build API
|
||||
WORKDIR /src
|
||||
COPY archival/src/FilterLists.Archival.Infrastructure/. FilterLists.Archival.Infrastructure/
|
||||
COPY archival/src/FilterLists.Archival.Application/. FilterLists.Archival.Application/
|
||||
WORKDIR /src/FilterLists.Archival.Api
|
||||
WORKDIR /app
|
||||
COPY sharedKernel/src/FilterLists.SharedKernel.Logging/. sharedKernel/src/FilterLists.SharedKernel.Logging/
|
||||
COPY archival/src/FilterLists.Archival.Infrastructure/. archival/src/FilterLists.Archival.Infrastructure/
|
||||
COPY archival/src/FilterLists.Archival.Application/. archival/src/FilterLists.Archival.Application/
|
||||
WORKDIR /app/archival/src/FilterLists.Archival.Api
|
||||
COPY archival/src/FilterLists.Archival.Api/. .
|
||||
RUN dotnet publish -c Release --no-restore -o /app/publish -p:PublishReadyToRun=true -p:PublishSingleFile=true -p:PublishTrimmed=true -r linux-musl-x64
|
||||
|
||||
|
|
|
|||
|
|
@ -6,18 +6,20 @@ WORKDIR /app
|
|||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1.401-alpine AS build
|
||||
|
||||
# restore API
|
||||
WORKDIR /src
|
||||
COPY archival/src/FilterLists.Archival.Infrastructure/FilterLists.Archival.Infrastructure.csproj FilterLists.Archival.Infrastructure/
|
||||
COPY archival/src/FilterLists.Archival.Application/FilterLists.Archival.Application.csproj FilterLists.Archival.Application/
|
||||
WORKDIR /src/FilterLists.Archival.Api
|
||||
WORKDIR /app
|
||||
COPY sharedKernel/src/FilterLists.SharedKernel.Logging/FilterLists.SharedKernel.Logging.csproj sharedKernel/src/FilterLists.SharedKernel.Logging/
|
||||
COPY archival/src/FilterLists.Archival.Infrastructure/FilterLists.Archival.Infrastructure.csproj archival/src/FilterLists.Archival.Infrastructure/
|
||||
COPY archival/src/FilterLists.Archival.Application/FilterLists.Archival.Application.csproj archival/src/FilterLists.Archival.Application/
|
||||
WORKDIR /app/archival/src/FilterLists.Archival.Api
|
||||
COPY archival/src/FilterLists.Archival.Api/FilterLists.Archival.Api.csproj .
|
||||
RUN dotnet restore
|
||||
|
||||
# build API
|
||||
WORKDIR /src
|
||||
COPY archival/src/FilterLists.Archival.Infrastructure/. FilterLists.Archival.Infrastructure/
|
||||
COPY archival/src/FilterLists.Archival.Application/. FilterLists.Archival.Application/
|
||||
WORKDIR /src/FilterLists.Archival.Api
|
||||
WORKDIR /app
|
||||
COPY sharedKernel/src/FilterLists.SharedKernel.Logging/. sharedKernel/src/FilterLists.SharedKernel.Logging/
|
||||
COPY archival/src/FilterLists.Archival.Infrastructure/. archival/src/FilterLists.Archival.Infrastructure/
|
||||
COPY archival/src/FilterLists.Archival.Application/. archival/src/FilterLists.Archival.Application/
|
||||
WORKDIR /app/archival/src/FilterLists.Archival.Api
|
||||
COPY archival/src/FilterLists.Archival.Api/. .
|
||||
RUN dotnet publish --no-restore -o /app/publish -r linux-musl-x64
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
using System.Threading.Tasks;
|
||||
using FilterLists.Archival.Application;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using static FilterLists.SharedKernel.Logging.HostRunner;
|
||||
|
||||
namespace FilterLists.Archival.Api
|
||||
{
|
||||
|
|
@ -8,13 +10,17 @@ public static class Program
|
|||
{
|
||||
public static async Task Main(string[] args)
|
||||
{
|
||||
var host = CreateHostBuilder(args).Build();
|
||||
await host.RunAsync();
|
||||
await TryRunWithLoggingAsync(async () =>
|
||||
{
|
||||
var host = CreateHostBuilder(args).Build();
|
||||
await host.RunAsync();
|
||||
});
|
||||
}
|
||||
|
||||
public static IHostBuilder CreateHostBuilder(string[] args)
|
||||
{
|
||||
return Host.CreateDefaultBuilder(args)
|
||||
.UseApplication()
|
||||
.ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup<Startup>());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,14 +3,20 @@
|
|||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
|
||||
namespace FilterLists.Archival.Application
|
||||
{
|
||||
public static class ServiceCollectionExtension
|
||||
public static class ConfigurationExtensions
|
||||
{
|
||||
public static IHostBuilder UseApplication(this IHostBuilder hostBuilder)
|
||||
{
|
||||
return hostBuilder.UseInfrastructure();
|
||||
}
|
||||
|
||||
public static void AddApplicationServices(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
services.AddMediatR(typeof(ServiceCollectionExtension).Assembly);
|
||||
services.AddMediatR(typeof(ConfigurationExtensions).Assembly);
|
||||
services.AddInfrastructureServices(configuration);
|
||||
}
|
||||
|
||||
|
|
@ -1,14 +1,21 @@
|
|||
using System;
|
||||
using FilterLists.Archival.Infrastructure.Persistence;
|
||||
using FilterLists.Archival.Infrastructure.Scheduling;
|
||||
using FilterLists.SharedKernel.Logging;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
|
||||
namespace FilterLists.Archival.Infrastructure
|
||||
{
|
||||
public static class ServiceCollectionExtension
|
||||
public static class ConfigurationExtensions
|
||||
{
|
||||
public static IHostBuilder UseInfrastructure(this IHostBuilder hostBuilder)
|
||||
{
|
||||
return hostBuilder.UseLogging();
|
||||
}
|
||||
|
||||
public static void AddInfrastructureServices(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
_ = configuration ?? throw new ArgumentNullException(nameof(configuration));
|
||||
|
|
@ -38,4 +38,8 @@
|
|||
<PackageReference Include="Microsoft.Extensions.Options.ConfigurationExtensions" Version="3.1.8" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\sharedKernel\src\FilterLists.SharedKernel.Logging\FilterLists.SharedKernel.Logging.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
namespace FilterLists.Archival.Infrastructure.Persistence
|
||||
{
|
||||
internal static class ServiceCollectionExtension
|
||||
internal static class ConfigurationExtensions
|
||||
{
|
||||
public static void AddPersistenceServices(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
namespace FilterLists.Archival.Infrastructure.Scheduling
|
||||
{
|
||||
internal static class ServiceCollectionExtension
|
||||
internal static class ConfigurationExtensions
|
||||
{
|
||||
private static ConnectionMultiplexer _redis = null!;
|
||||
|
||||
|
|
@ -7,22 +7,24 @@ EXPOSE 80
|
|||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1.401-alpine AS build
|
||||
|
||||
# restore API
|
||||
WORKDIR /src
|
||||
COPY directory/src/FilterLists.Directory.Domain/FilterLists.Directory.Domain.csproj FilterLists.Directory.Domain/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj FilterLists.Directory.Infrastructure/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY directory/src/FilterLists.Directory.Application/FilterLists.Directory.Application.csproj FilterLists.Directory.Application/
|
||||
WORKDIR /src/FilterLists.Directory.Api
|
||||
WORKDIR /app
|
||||
COPY sharedKernel/src/FilterLists.SharedKernel.Logging/FilterLists.SharedKernel.Logging.csproj sharedKernel/src/FilterLists.SharedKernel.Logging/
|
||||
COPY directory/src/FilterLists.Directory.Domain/FilterLists.Directory.Domain.csproj directory/src/FilterLists.Directory.Domain/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj directory/src/FilterLists.Directory.Infrastructure/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj directory/src/FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY directory/src/FilterLists.Directory.Application/FilterLists.Directory.Application.csproj directory/src/FilterLists.Directory.Application/
|
||||
WORKDIR /app/directory/src/FilterLists.Directory.Api
|
||||
COPY directory/src/FilterLists.Directory.Api/FilterLists.Directory.Api.csproj .
|
||||
RUN dotnet restore
|
||||
|
||||
# build API
|
||||
WORKDIR /src
|
||||
COPY directory/src/FilterLists.Directory.Domain/. FilterLists.Directory.Domain/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure/. FilterLists.Directory.Infrastructure/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure.Migrations/. FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY directory/src/FilterLists.Directory.Application/. FilterLists.Directory.Application/
|
||||
WORKDIR /src/FilterLists.Directory.Api
|
||||
WORKDIR /app
|
||||
COPY sharedKernel/src/FilterLists.SharedKernel.Logging/. sharedKernel/src/FilterLists.SharedKernel.Logging/
|
||||
COPY directory/src/FilterLists.Directory.Domain/. directory/src/FilterLists.Directory.Domain/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure/. directory/src/FilterLists.Directory.Infrastructure/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure.Migrations/. directory/src/FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY directory/src/FilterLists.Directory.Application/. directory/src/FilterLists.Directory.Application/
|
||||
WORKDIR /app/directory/src/FilterLists.Directory.Api
|
||||
COPY directory/src/FilterLists.Directory.Api/. .
|
||||
RUN dotnet publish -c Release --no-restore -o /app/publish -p:PublishReadyToRun=true -p:PublishSingleFile=true -p:PublishTrimmed=true -r linux-musl-x64
|
||||
|
||||
|
|
|
|||
|
|
@ -7,22 +7,24 @@ EXPOSE 80
|
|||
FROM mcr.microsoft.com/dotnet/core/sdk:3.1.401-alpine AS build
|
||||
|
||||
# restore API
|
||||
WORKDIR /src
|
||||
COPY directory/src/FilterLists.Directory.Domain/FilterLists.Directory.Domain.csproj FilterLists.Directory.Domain/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj FilterLists.Directory.Infrastructure/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY directory/src/FilterLists.Directory.Application/FilterLists.Directory.Application.csproj FilterLists.Directory.Application/
|
||||
WORKDIR /src/FilterLists.Directory.Api
|
||||
WORKDIR /app
|
||||
COPY sharedKernel/src/FilterLists.SharedKernel.Logging/FilterLists.SharedKernel.Logging.csproj sharedKernel/src/FilterLists.SharedKernel.Logging/
|
||||
COPY directory/src/FilterLists.Directory.Domain/FilterLists.Directory.Domain.csproj directory/src/FilterLists.Directory.Domain/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj directory/src/FilterLists.Directory.Infrastructure/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj directory/src/FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY directory/src/FilterLists.Directory.Application/FilterLists.Directory.Application.csproj directory/src/FilterLists.Directory.Application/
|
||||
WORKDIR /app/directory/src/FilterLists.Directory.Api
|
||||
COPY directory/src/FilterLists.Directory.Api/FilterLists.Directory.Api.csproj .
|
||||
RUN dotnet restore
|
||||
|
||||
# build API
|
||||
WORKDIR /src
|
||||
COPY directory/src/FilterLists.Directory.Domain/. FilterLists.Directory.Domain/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure/. FilterLists.Directory.Infrastructure/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure.Migrations/. FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY directory/src/FilterLists.Directory.Application/. FilterLists.Directory.Application/
|
||||
WORKDIR /src/FilterLists.Directory.Api
|
||||
WORKDIR /app
|
||||
COPY sharedKernel/src/FilterLists.SharedKernel.Logging/. sharedKernel/src/FilterLists.SharedKernel.Logging/
|
||||
COPY directory/src/FilterLists.Directory.Domain/. directory/src/FilterLists.Directory.Domain/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure/. directory/src/FilterLists.Directory.Infrastructure/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure.Migrations/. directory/src/FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY directory/src/FilterLists.Directory.Application/. directory/src/FilterLists.Directory.Application/
|
||||
WORKDIR /app/directory/src/FilterLists.Directory.Api
|
||||
COPY directory/src/FilterLists.Directory.Api/. .
|
||||
RUN dotnet publish --no-restore -o /app/publish -r linux-musl-x64
|
||||
|
||||
|
|
|
|||
|
|
@ -3,23 +3,25 @@ FROM mcr.microsoft.com/dotnet/core/sdk:3.1.401-alpine AS test-migrations
|
|||
ENTRYPOINT ["dotnet", "test", "--logger:trx"]
|
||||
|
||||
# restore
|
||||
WORKDIR /src
|
||||
COPY directory/src/FilterLists.Directory.Domain/FilterLists.Directory.Domain.csproj FilterLists.Directory.Domain/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj FilterLists.Directory.Infrastructure/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY directory/src/FilterLists.Directory.Application/FilterLists.Directory.Application.csproj FilterLists.Directory.Application/
|
||||
COPY directory/src/FilterLists.Directory.Api/FilterLists.Directory.Api.csproj FilterLists.Directory.Api/
|
||||
WORKDIR /tests/FilterLists.Directory.Infrastructure.Migrations.Tests
|
||||
WORKDIR /app
|
||||
COPY sharedKernel/src/FilterLists.SharedKernel.Logging/FilterLists.SharedKernel.Logging.csproj sharedKernel/src/FilterLists.SharedKernel.Logging/
|
||||
COPY directory/src/FilterLists.Directory.Domain/FilterLists.Directory.Domain.csproj directory/src/FilterLists.Directory.Domain/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj directory/src/FilterLists.Directory.Infrastructure/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj directory/src/FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY directory/src/FilterLists.Directory.Application/FilterLists.Directory.Application.csproj directory/src/FilterLists.Directory.Application/
|
||||
COPY directory/src/FilterLists.Directory.Api/FilterLists.Directory.Api.csproj directory/src/FilterLists.Directory.Api/
|
||||
WORKDIR /app/directory/tests/FilterLists.Directory.Infrastructure.Migrations.Tests
|
||||
COPY directory/tests/FilterLists.Directory.Infrastructure.Migrations.Tests/FilterLists.Directory.Infrastructure.Migrations.Tests.csproj .
|
||||
RUN dotnet restore
|
||||
|
||||
# build
|
||||
WORKDIR /src
|
||||
COPY directory/src/FilterLists.Directory.Domain/. FilterLists.Directory.Domain/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure/. FilterLists.Directory.Infrastructure/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure.Migrations/. FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY directory/src/FilterLists.Directory.Application/. FilterLists.Directory.Application/
|
||||
COPY directory/src/FilterLists.Directory.Api/. FilterLists.Directory.Api/
|
||||
WORKDIR /tests/FilterLists.Directory.Infrastructure.Migrations.Tests
|
||||
WORKDIR /app
|
||||
COPY sharedKernel/src/FilterLists.SharedKernel.Logging/. sharedKernel/src/FilterLists.SharedKernel.Logging/
|
||||
COPY directory/src/FilterLists.Directory.Domain/. directory/src/FilterLists.Directory.Domain/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure/. directory/src/FilterLists.Directory.Infrastructure/
|
||||
COPY directory/src/FilterLists.Directory.Infrastructure.Migrations/. directory/src/FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY directory/src/FilterLists.Directory.Application/. directory/src/FilterLists.Directory.Application/
|
||||
COPY directory/src/FilterLists.Directory.Api/. directory/src/FilterLists.Directory.Api/
|
||||
WORKDIR /app/directory/tests/FilterLists.Directory.Infrastructure.Migrations.Tests
|
||||
COPY directory/tests/FilterLists.Directory.Infrastructure.Migrations.Tests/. .
|
||||
RUN dotnet build -c Release --no-restore -r linux-musl-x64
|
||||
|
|
@ -1,7 +1,9 @@
|
|||
using System.Threading.Tasks;
|
||||
using FilterLists.Directory.Application;
|
||||
using FilterLists.Directory.Infrastructure.Persistence;
|
||||
using Microsoft.AspNetCore.Hosting;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
using static FilterLists.SharedKernel.Logging.HostRunner;
|
||||
|
||||
namespace FilterLists.Directory.Api
|
||||
{
|
||||
|
|
@ -9,14 +11,18 @@ public static class Program
|
|||
{
|
||||
public static async Task Main(string[] args)
|
||||
{
|
||||
var host = CreateHostBuilder(args).Build();
|
||||
await host.MigrateAsync();
|
||||
await host.RunAsync();
|
||||
await TryRunWithLoggingAsync(async () =>
|
||||
{
|
||||
var host = CreateHostBuilder(args).Build();
|
||||
await host.MigrateAsync();
|
||||
await host.RunAsync();
|
||||
});
|
||||
}
|
||||
|
||||
public static IHostBuilder CreateHostBuilder(string[] args)
|
||||
{
|
||||
return Host.CreateDefaultBuilder(args)
|
||||
.UseApplication()
|
||||
.ConfigureWebHostDefaults(webBuilder => webBuilder.UseStartup<Startup>());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,15 +3,21 @@
|
|||
using MediatR;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
|
||||
namespace FilterLists.Directory.Application
|
||||
{
|
||||
public static class ServiceCollectionExtension
|
||||
public static class ConfigurationExtensions
|
||||
{
|
||||
public static IHostBuilder UseApplication(this IHostBuilder hostBuilder)
|
||||
{
|
||||
return hostBuilder.UseInfrastructure();
|
||||
}
|
||||
|
||||
public static void AddApplicationServices(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
services.AddMediatR(typeof(ServiceCollectionExtension).Assembly);
|
||||
services.AddAutoMapper(typeof(ServiceCollectionExtension));
|
||||
services.AddMediatR(typeof(ConfigurationExtensions).Assembly);
|
||||
services.AddAutoMapper(typeof(ConfigurationExtensions));
|
||||
services.AddInfrastructureServices(configuration);
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +1,19 @@
|
|||
using FilterLists.Directory.Infrastructure.Persistence.Queries.Context;
|
||||
using FilterLists.SharedKernel.Logging;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Hosting;
|
||||
|
||||
namespace FilterLists.Directory.Infrastructure
|
||||
{
|
||||
public static class ServiceCollectionExtension
|
||||
public static class ConfigurationExtensions
|
||||
{
|
||||
public static IHostBuilder UseInfrastructure(this IHostBuilder hostBuilder)
|
||||
{
|
||||
return hostBuilder.UseLogging();
|
||||
}
|
||||
|
||||
public static void AddInfrastructureServices(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
services.AddDbContextPool<QueryDbContext>(o =>
|
||||
|
|
@ -34,6 +34,7 @@
|
|||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\..\sharedKernel\src\FilterLists.SharedKernel.Logging\FilterLists.SharedKernel.Logging.csproj" />
|
||||
<ProjectReference Include="..\FilterLists.Directory.Domain\FilterLists.Directory.Domain.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,13 @@
|
|||
using Microsoft.Extensions.Hosting;
|
||||
using Serilog;
|
||||
|
||||
namespace FilterLists.SharedKernel.Logging
|
||||
{
|
||||
public static class ConfigurationExtensions
|
||||
{
|
||||
public static IHostBuilder UseLogging(this IHostBuilder hostBuilder)
|
||||
{
|
||||
return hostBuilder.UseSerilog();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,35 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.1</TargetFramework>
|
||||
<LangVersion>latest</LangVersion>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<Authors>Collin M. Barrett</Authors>
|
||||
<Company>FilterLists</Company>
|
||||
<Product>FilterLists Shared Kernel Logging</Product>
|
||||
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
|
||||
<Copyright>Copyright (c) 2020 Collin M. Barrett</Copyright>
|
||||
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
|
||||
<PackageProjectUrl>https://filterlists.com</PackageProjectUrl>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
<NoWarn>1701;1702;CA2007</NoWarn>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
|
||||
<NoWarn>CA2007</NoWarn>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.3.0">
|
||||
<PrivateAssets>all</PrivateAssets>
|
||||
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Serilog.AspNetCore" Version="3.4.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Serilog;
|
||||
using Serilog.Events;
|
||||
|
||||
namespace FilterLists.SharedKernel.Logging
|
||||
{
|
||||
public static class HostRunner
|
||||
{
|
||||
public static async Task<int> TryRunWithLoggingAsync(Func<Task> runHostAsync)
|
||||
{
|
||||
Log.Logger = new LoggerConfiguration()
|
||||
.MinimumLevel.Debug()
|
||||
.MinimumLevel.Override("Microsoft", LogEventLevel.Information)
|
||||
.Enrich.FromLogContext()
|
||||
.WriteTo.Console()
|
||||
.CreateLogger();
|
||||
|
||||
try
|
||||
{
|
||||
Log.Information("Starting host");
|
||||
await runHostAsync();
|
||||
return 0;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Log.Fatal(ex, "Host terminated unexpectedly");
|
||||
return 1;
|
||||
}
|
||||
finally
|
||||
{
|
||||
Log.CloseAndFlush();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue