diff --git a/log/Logger.php b/log/Logger.php new file mode 100644 index 0000000..47ed938 --- /dev/null +++ b/log/Logger.php @@ -0,0 +1,21 @@ +conn = $db_conn; + } + + public function log($level, $message, $source = '', $additional_info = null) { + $stmt = $this->conn->prepare("INSERT INTO logs (level, message, source, additional_info) + VALUES (:level, :message, :source, :additional_info)"); + + return $stmt->execute([ + ':level' => $level, + ':message' => $message, + ':source' => $source, + ':additional_info' => $additional_info ? json_encode($additional_info) : null + ]); + } +} +?> diff --git a/log/db_config.php b/log/db_config.php new file mode 100644 index 0000000..b9769db --- /dev/null +++ b/log/db_config.php @@ -0,0 +1,7 @@ + diff --git a/log/log_api.php b/log/log_api.php new file mode 100644 index 0000000..6abecf6 --- /dev/null +++ b/log/log_api.php @@ -0,0 +1,58 @@ + 'Unauthorized'])); +} + +// Nur POST-Methode erlauben +if ($_SERVER['REQUEST_METHOD'] !== 'POST') { + http_response_code(405); + die(json_encode(['error' => 'Method not allowed'])); +} + +// JSON-Daten aus dem Request-Body lesen +$input = json_decode(file_get_contents('php://input'), true); + +// Validierung der Eingabedaten +if (!isset($input['level']) || !isset($input['message'])) { + http_response_code(400); + die(json_encode(['error' => 'Missing required fields'])); +} + +try { + // Datenbankverbindung herstellen + $pdo = new PDO( + "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME, + DB_USER, + DB_PASS, + [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION] + ); + + $logger = new Logger($pdo); + + // Log-Eintrag erstellen + $result = $logger->log( + $input['level'], + $input['message'], + $input['source'] ?? '', + $input['additional_info'] ?? null + ); + + if ($result) { + echo json_encode(['success' => true, 'message' => 'Log entry created']); + } else { + http_response_code(500); + echo json_encode(['error' => 'Failed to create log entry']); + } + +} catch (PDOException $e) { + http_response_code(500); + echo json_encode(['error' => 'Database error']); +} +?>