From 7c5a505ad1e4c14de394d4eb23a0d69256f18e93 Mon Sep 17 00:00:00 2001 From: TekH Date: Fri, 31 Oct 2025 10:23:11 +0100 Subject: [PATCH] add serilog --- .../EnvelopeGenerator.Finalizer.csproj | 4 + EnvelopeGenerator.Finalizer/Program.cs | 82 ++++++++++++------- EnvelopeGenerator.Finalizer/appsettings.json | 34 +++++++- 3 files changed, 91 insertions(+), 29 deletions(-) diff --git a/EnvelopeGenerator.Finalizer/EnvelopeGenerator.Finalizer.csproj b/EnvelopeGenerator.Finalizer/EnvelopeGenerator.Finalizer.csproj index 0f0414ff..091c4636 100644 --- a/EnvelopeGenerator.Finalizer/EnvelopeGenerator.Finalizer.csproj +++ b/EnvelopeGenerator.Finalizer/EnvelopeGenerator.Finalizer.csproj @@ -10,6 +10,10 @@ + + + + diff --git a/EnvelopeGenerator.Finalizer/Program.cs b/EnvelopeGenerator.Finalizer/Program.cs index c15a2b30..117a95da 100644 --- a/EnvelopeGenerator.Finalizer/Program.cs +++ b/EnvelopeGenerator.Finalizer/Program.cs @@ -2,36 +2,62 @@ using EnvelopeGenerator.Application; using EnvelopeGenerator.Finalizer; using EnvelopeGenerator.Infrastructure; using Microsoft.EntityFrameworkCore; +using Serilog; -var builder = Host.CreateApplicationBuilder(args); -var config = builder.Configuration; -builder.Services.AddHostedService(); - -#region Add DB Context, EG Inf. and Services -var cnnStrName = "Default"; -var connStr = config.GetConnectionString(cnnStrName) - ?? throw new InvalidOperationException($"Connection string '{cnnStrName}' is missing in the application configuration."); - -#pragma warning disable CS0618 // Type or member is obsolete -builder.Services.AddEnvelopeGeneratorInfrastructureServices( - opt => - { - opt.AddDbTriggerParams(config); - opt.AddDbContext((provider, options) => +// Load Serilog from appsettings.json +Log.Logger = new LoggerConfiguration() + .ReadFrom.Configuration(new ConfigurationBuilder() + .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) + .Build()) + .CreateLogger(); + +try +{ + var builder = Host.CreateApplicationBuilder(args); + + // add serilog + builder.Logging.ClearProviders(); + builder.Logging.AddSerilog(); + + var config = builder.Configuration; + builder.Services.AddHostedService(); + + #region Add DB Context, EG Inf. and Services + var cnnStrName = "Default"; + var connStr = config.GetConnectionString(cnnStrName) + ?? throw new InvalidOperationException($"Connection string '{cnnStrName}' is missing in the application configuration."); + + #pragma warning disable CS0618 // Type or member is obsolete + builder.Services.AddEnvelopeGeneratorInfrastructureServices( + opt => { - var logger = provider.GetRequiredService>(); - options.UseSqlServer(connStr) - .LogTo(log => logger.LogInformation("{log}", log), Microsoft.Extensions.Logging.LogLevel.Trace) - .EnableSensitiveDataLogging() - .EnableDetailedErrors(); + opt.AddDbTriggerParams(config); + opt.AddDbContext((provider, options) => + { + var logger = provider.GetRequiredService>(); + options.UseSqlServer(connStr) + .LogTo(log => logger.LogInformation("{log}", log), Microsoft.Extensions.Logging.LogLevel.Trace) + .EnableSensitiveDataLogging() + .EnableDetailedErrors(); + }); }); - }); -#pragma warning restore CS0618 // Type or member is obsolete + #pragma warning restore CS0618 // Type or member is obsolete + + #pragma warning disable CS0618 // Type or member is obsolete + builder.Services.AddEnvelopeGeneratorServices(config); + #pragma warning restore CS0618 // Type or member is obsolete + #endregion Add DB Context, EG Inf. and Services -#pragma warning disable CS0618 // Type or member is obsolete -builder.Services.AddEnvelopeGeneratorServices(config); -#pragma warning restore CS0618 // Type or member is obsolete -#endregion Add DB Context, EG Inf. and Services + var host = builder.Build(); + host.Run(); -var host = builder.Build(); -host.Run(); \ No newline at end of file + Log.Information("The worker was stopped."); +} +catch(Exception ex) +{ + Log.Fatal(ex, "Worker could not be started!"); +} +finally +{ + Log.CloseAndFlush(); +} \ No newline at end of file diff --git a/EnvelopeGenerator.Finalizer/appsettings.json b/EnvelopeGenerator.Finalizer/appsettings.json index b2dcdb67..c0528954 100644 --- a/EnvelopeGenerator.Finalizer/appsettings.json +++ b/EnvelopeGenerator.Finalizer/appsettings.json @@ -4,5 +4,37 @@ "Default": "Information", "Microsoft.Hosting.Lifetime": "Information" } + }, + "ConnectionStrings": { + "Default": "Server=SDD-VMP04-SQL17\\DD_DEVELOP01;Database=DD_ECM;User Id=sa;Password=dd;Encrypt=false;TrustServerCertificate=True;", + "DbMigrationTest": "Server=SDD-VMP04-SQL17\\DD_DEVELOP01;Database=DD_ECM_DATA_MIGR_TEST;User Id=sa;Password=dd;Encrypt=false;TrustServerCertificate=True;" + }, + "Serilog": { + "Using": [ "Serilog.Sinks.Console", "Serilog.Sinks.File" ], + "MinimumLevel": { + "Default": "Information", + "Override": { + "Microsoft": "Warning", + "System": "Warning" + } + }, + "WriteTo": [ + { + "Name": "Console", + "Args": { + "outputTemplate": "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}" + } + }, + { + "Name": "File", + "Args": { + "path": "Logs/log-.txt", + "rollingInterval": "Day", + "retainedFileCountLimit": 7, + "outputTemplate": "[{Timestamp:yyyy-MM-dd HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}" + } + } + ], + "Enrich": [ "FromLogContext", "WithMachineName", "WithThreadId" ] } -} +} \ No newline at end of file