feat: wire up Program.cs, DI extensions, Serilog, and appsettings

- ServiceCollectionExtensions in DAL.EF: AddNotificationDataAccess (DbContext, UoW, repositories)
- ServiceCollectionExtensions in Services: AddNotificationServices (MediatR + TransactionBehavior)
- Api/Program.cs: Serilog, OpenAPI, controllers, DI wiring
- Worker/Program.cs: Serilog, DI wiring
- appsettings.json: Serilog config with Console + Seq sinks, connection string
- appsettings.Development.json: Debug log level overrides

Ref: IT-628

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Anatolii Grynchuk
2026-05-02 00:24:54 +03:00
parent 101bb908bd
commit 5cf5f888eb
12 changed files with 144 additions and 58 deletions
@@ -10,6 +10,7 @@
<ItemGroup>
<PackageReference Include="Microsoft.Extensions.Hosting" />
<PackageReference Include="Serilog.Extensions.Hosting" />
<PackageReference Include="Serilog.Settings.Configuration" />
<PackageReference Include="Serilog.Sinks.Console" />
<PackageReference Include="Serilog.Sinks.Seq" />
</ItemGroup>
+13 -1
View File
@@ -1,7 +1,19 @@
using HrynCo.NotificationService.DAL.EF;
using HrynCo.NotificationService.Services;
using HrynCo.NotificationService.Worker;
using Serilog;
var builder = Host.CreateApplicationBuilder(args);
builder.Services.AddSerilog(lc =>
lc.ReadFrom.Configuration(builder.Configuration));
string connectionString = builder.Configuration.GetConnectionString("Default")
?? throw new InvalidOperationException("Connection string 'Default' is not configured.");
builder.Services.AddNotificationDataAccess(connectionString);
builder.Services.AddNotificationServices();
builder.Services.AddHostedService<Worker>();
var host = builder.Build();
host.Run();
host.Run();
@@ -1,8 +1,12 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.Hosting.Lifetime": "Information"
"Serilog": {
"MinimumLevel": {
"Default": "Debug",
"Override": {
"Microsoft": "Information",
"Microsoft.EntityFrameworkCore": "Information",
"Microsoft.AspNetCore": "Information"
}
}
}
}
}
@@ -1,8 +1,25 @@
{
"Logging": {
"LogLevel": {
"ConnectionStrings": {
"Default": "Host=localhost;Port=5432;Database=notification_service;Username=postgres;Password=postgres"
},
"Serilog": {
"MinimumLevel": {
"Default": "Information",
"Microsoft.Hosting.Lifetime": "Information"
}
"Override": {
"Microsoft": "Warning",
"Microsoft.EntityFrameworkCore": "Warning",
"Microsoft.AspNetCore": "Warning"
}
},
"WriteTo": [
{ "Name": "Console" },
{
"Name": "Seq",
"Args": {
"serverUrl": "http://localhost:5341"
}
}
],
"Enrich": [ "FromLogContext" ]
}
}
}