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(); } }