diff --git a/Cajetan.OF-DL/Cajetan.OF-DL.csproj b/Cajetan.OF-DL/Cajetan.OF-DL.csproj
index 287068f..43384a8 100644
--- a/Cajetan.OF-DL/Cajetan.OF-DL.csproj
+++ b/Cajetan.OF-DL/Cajetan.OF-DL.csproj
@@ -23,4 +23,8 @@
+
+
+
+
diff --git a/Cajetan.OF-DL/Services/SeqLoggingService.cs b/Cajetan.OF-DL/Services/SeqLoggingService.cs
new file mode 100644
index 0000000..6efcea4
--- /dev/null
+++ b/Cajetan.OF-DL/Services/SeqLoggingService.cs
@@ -0,0 +1,50 @@
+using OF_DL.Enumerations;
+using Serilog;
+using Serilog.Core;
+using Serilog.Events;
+
+namespace OF_DL.Services;
+
+public class SeqLoggingService : ILoggingService
+{
+ public SeqLoggingService()
+ {
+ LevelSwitch = new LoggingLevelSwitch();
+ InitializeLoggerWithSeq();
+ }
+
+ ///
+ /// Gets the level switch that controls runtime logging verbosity.
+ ///
+ public LoggingLevelSwitch LevelSwitch { get; }
+
+ ///
+ /// Updates the minimum logging level at runtime.
+ ///
+ /// The new minimum log level.
+ public void UpdateLoggingLevel(LoggingLevel newLevel)
+ {
+ LevelSwitch.MinimumLevel = (LogEventLevel)newLevel;
+ Log.Debug("Logging level updated to: {LoggingLevel}", newLevel);
+ }
+
+ ///
+ /// Returns the current minimum logging level.
+ ///
+ public LoggingLevel GetCurrentLoggingLevel() => (LoggingLevel)LevelSwitch.MinimumLevel;
+
+ private void InitializeLoggerWithSeq()
+ {
+ Log.Logger = new LoggerConfiguration()
+ .Enrich.FromLogContext()
+ .Enrich.WithProperty("Application", "OF_DL")
+ .Enrich.WithProperty("StartTime", $"{DateTime.Now:yyyy-MM-dd HH:mm:ss} ")
+ .Enrich.WithProperty("MachineName", Environment.MachineName)
+ .MinimumLevel.ControlledBy(LevelSwitch)
+ .WriteTo.File("logs/OFDL.txt", rollingInterval: RollingInterval.Day, restrictedToMinimumLevel: LogEventLevel.Error)
+ .WriteTo.Seq("https://seq.cajetan.dk")
+ .CreateLogger();
+
+ Log.Debug("Logging service initialized");
+ }
+}