<?php
// Le mot-clé à rechercher
$keyword = "erreur";
// Chemin vers le fichier journal
$log_file = 'myapp.log';
//Connexion à la base de données
$db = new PDO('mysql:host=localhost;dbname=logs;charset=utf8mb4', 'username', 'password');
// Ouvrir le fichier journal en lecture seule
$log_file_handle = fopen($log_file, 'r');
// Lire toutes les lignes du journal
while (($log_line = fgets($log_file_handle)) !== false) {
if (strpos($log_line, $keyword) !== false) {
// Le mot-clé a été trouvé dans la ligne, vérifier si la ligne a déjà été traitée
$query = $db->prepare("SELECT COUNT(*) FROM processed_logs WHERE log_line = :log_line");
$query->execute(array(':log_line' => $log_line));
$count = $query->fetchColumn();
if ($count == 0) {
// La ligne n'a pas encore été traitée, créer un événement
createEvent($log_line);
// Enregistrer la ligne dans la base de données pour éviter de la traiter à nouveau
$query = $db->prepare("INSERT INTO processed_logs (log_line) VALUES (:log_line)");
$query->execute(array(':log_line' => $log_line));
}
}
}
// Fermer le fichier journal
fclose($log_file_handle);
/**
* Fonction pour créer un événement
* @param string $log_line La ligne de journal contenant le mot-clé
*/
function createEvent($log_line) {
// Insérer le code pour créer l'événement ici
// Par exemple, enregistrer l'événement dans une base de données, envoyer une notification, etc.
echo "Création d'un événement: $log_line";
}
?>