using OF_DL.Enumerations; using Serilog; using Serilog.Core; using Serilog.Events; namespace OF_DL.Services; public class LoggingService : ILoggingService { public LoggingService() { LevelSwitch = new LoggingLevelSwitch(); InitializeLogger(); } public LoggingLevelSwitch LevelSwitch { get; } public void UpdateLoggingLevel(LoggingLevel newLevel) { LevelSwitch.MinimumLevel = (LogEventLevel)newLevel; Log.Debug("Logging level updated to: {LoggingLevel}", newLevel); } public LoggingLevel GetCurrentLoggingLevel() => (LoggingLevel)LevelSwitch.MinimumLevel; private void InitializeLogger() { // Set the initial level to Error (until we've read from config) LevelSwitch.MinimumLevel = LogEventLevel.Error; Log.Logger = new LoggerConfiguration() .MinimumLevel.ControlledBy(LevelSwitch) .WriteTo.File("logs/OFDL.txt", rollingInterval: RollingInterval.Day) .CreateLogger(); Log.Debug("Logging service initialized"); } }