diff --git a/ApiDto/Requests/Configuration/LoggingRequest.cs b/ApiDto/Requests/Configuration/LoggingRequest.cs
new file mode 100644
index 0000000..eba6428
--- /dev/null
+++ b/ApiDto/Requests/Configuration/LoggingRequest.cs
@@ -0,0 +1,25 @@
+using System.ComponentModel.DataAnnotations;
+
+namespace Mirea.Api.Dto.Requests.Configuration;
+
+///
+/// Represents a request to configure logging settings.
+///
+public class LoggingRequest
+{
+ ///
+ /// Gets or sets a value indicating whether logging to file is enabled.
+ ///
+ [Required]
+ public bool EnableLogToFile { get; set; }
+
+ ///
+ /// Gets or sets the log file name.
+ ///
+ public string? LogFileName { get; set; }
+
+ ///
+ /// Gets or sets the log file path.
+ ///
+ public string? LogFilePath { get; set; }
+}
\ No newline at end of file
diff --git a/Endpoint/Controllers/Configuration/SetupController.cs b/Endpoint/Controllers/Configuration/SetupController.cs
index ed8512a..ccc51be 100644
--- a/Endpoint/Controllers/Configuration/SetupController.cs
+++ b/Endpoint/Controllers/Configuration/SetupController.cs
@@ -186,6 +186,34 @@ public class SetupController(ISetupToken setupToken, IMaintenanceModeNotConfigur
return Ok(true);
}
+
+ [HttpPost("SetLogging")]
+ [TokenAuthentication]
+ [BadRequestResponse]
+ public ActionResult SetLogging([FromBody] LoggingRequest? request)
+ {
+ var settings = (request == null) switch
+ {
+ true => new LogSettings
+ {
+ EnableLogToFile = true,
+ LogFileName = "logging-",
+ LogFilePath = "logs"
+ },
+ false => new LogSettings
+ {
+ EnableLogToFile = request.EnableLogToFile,
+ LogFileName = request.LogFileName,
+ LogFilePath = request.LogFilePath
+ }
+ };
+
+ var general = GeneralConfig;
+ general.LogSettings = settings;
+ GeneralConfig = general;
+
+ return true;
+ }
}