From 64d4abf25bf903920503f9726515c789b910ccfc Mon Sep 17 00:00:00 2001 From: Flaminel Date: Mon, 9 Jun 2025 02:21:20 +0300 Subject: [PATCH] fixed setting log level --- .../Controllers/ConfigurationController.cs | 10 ++++- .../Controllers/LoggingController.cs | 43 ------------------- .../Logging/LoggingConfigManager.cs | 21 ++------- 3 files changed, 12 insertions(+), 62 deletions(-) delete mode 100644 code/Executable/Controllers/LoggingController.cs diff --git a/code/Executable/Controllers/ConfigurationController.cs b/code/Executable/Controllers/ConfigurationController.cs index a027c166..6d9248f4 100644 --- a/code/Executable/Controllers/ConfigurationController.cs +++ b/code/Executable/Controllers/ConfigurationController.cs @@ -11,6 +11,7 @@ using Common.Configuration.General; using Common.Configuration.Notification; using Common.Configuration.QueueCleaner; using Infrastructure.Configuration; +using Infrastructure.Logging; using Infrastructure.Models; using Infrastructure.Services.Interfaces; using Mapster; @@ -25,15 +26,19 @@ public class ConfigurationController : ControllerBase private readonly ILogger _logger; private readonly IConfigManager _configManager; private readonly IJobManagementService _jobManagementService; + private readonly LoggingConfigManager _loggingConfigManager; public ConfigurationController( ILogger logger, IConfigManager configManager, - IJobManagementService jobManagementService) + IJobManagementService jobManagementService, + LoggingConfigManager loggingConfigManager + ) { _logger = logger; _configManager = configManager; _jobManagementService = jobManagementService; + _loggingConfigManager = loggingConfigManager; } [HttpGet("queue_cleaner")] @@ -240,6 +245,9 @@ public class ConfigurationController : ControllerBase // Persist the configuration var result = await _configManager.SaveConfigurationAsync(config); + + _loggingConfigManager.SetLogLevel(config.LogLevel); + if (!result) { return StatusCode(500, "Failed to save General configuration"); diff --git a/code/Executable/Controllers/LoggingController.cs b/code/Executable/Controllers/LoggingController.cs deleted file mode 100644 index 1c6a9790..00000000 --- a/code/Executable/Controllers/LoggingController.cs +++ /dev/null @@ -1,43 +0,0 @@ -using Infrastructure.Logging; -using Microsoft.AspNetCore.Mvc; -using Serilog.Events; - -namespace Executable.Controllers; - -[ApiController] -[Route("api/[controller]/level")] -public class LoggingController : ControllerBase -{ - private readonly LoggingConfigManager _loggingConfigManager; - private readonly ILogger _logger; - - public LoggingController(LoggingConfigManager loggingConfigManager, ILogger logger) - { - _loggingConfigManager = loggingConfigManager; - _logger = logger; - } - - /// - /// Gets the current global log level - /// - /// Current log level - [HttpGet] - public IActionResult GetLogLevel() - { - return Ok(new { level = _loggingConfigManager.GetLogLevel().ToString() }); - } - - /// - /// Sets the global log level - /// - /// New log level - [HttpPut] - public async Task SetLogLevel([FromBody] LogEventLevel logLevel) - { - await _loggingConfigManager.SetLogLevel(logLevel); - - _logger.LogInformation("Log level changed to {level}", logLevel); - - return Ok(); - } -} \ No newline at end of file diff --git a/code/Infrastructure/Logging/LoggingConfigManager.cs b/code/Infrastructure/Logging/LoggingConfigManager.cs index 8ffa95ca..0afe19c2 100644 --- a/code/Infrastructure/Logging/LoggingConfigManager.cs +++ b/code/Infrastructure/Logging/LoggingConfigManager.cs @@ -36,27 +36,12 @@ public class LoggingConfigManager /// Updates the global log level and persists the change to configuration /// /// The new log level - public async Task SetLogLevel(LogEventLevel level) + public void SetLogLevel(LogEventLevel level) { + _logger.LogCritical("Setting global log level to {level}", level); + // Change the level in the switch _levelSwitch.MinimumLevel = level; - - _logger.LogInformation("Setting global log level to {level}", level); - - // Update configuration - try - { - var config = await _configManager.GetConfigurationAsync(); - - config.LogLevel = level; - - // TODO use SetProp - await _configManager.SaveConfigurationAsync(config); - } - catch (Exception ex) - { - _logger.LogError(ex, "Failed to update log level in configuration"); - } } ///