E-Mail Versand bei bestimmtem Fehler im oxidshop.log

Hallo zusammen,

ich habe mal eine grundsätzliche Frage zum error.log
Ist es möglich, sollte ein neuer Eintrag in der oxidshop.log Datei erstellt werden, eine E-Mail zu verschicken mit der jeweiligen Fehlermeldung?
Die E-Mail sollte aber auch nur verschicht werden wenn es ein bestimmter Fehler ist. Also z.B. wenn in der Fehler vorkommt “code: 25” … dann erst eine E-Mail verschicken.

Danke euch für jeden Denkanstoß.

Viele Grüße
Buxe

über einen cronjob ist das ohne viel Aufwand möglich.

Was findest du vorteilhafter. Mittels strpos in dem File suchen oder gleich beim erstellen des Fehlers über ein OXID Modul den Fehler abfangen?

mit einem Modul gehts natürlich auch - ist aber m.E. aufwändiger.
mit strpos im cronjob-script suchen ist einfacher
ein Tipp noch: von der log-Datei nur die ersten z.B. 50 Zeilen durchsuchen um doppelte Email zu vermeiden

Ich danke dir.

Da der Shop auch gemonitort wird, könnte ich auch statt einer Mail einfach ein zusätzliches File erstellen, das dann im centreon auftaucht. Das File muss dann halt nur manuell gelöscht werden, wenn man den Fehler behoben hat. So könnte man die doppelten Mails verhindern :wink:

EDIT:
Hier noch meine Lösung:
$file = ‘log/oxideshop.log’;
$error = ‘code: 25’;
$cent = ‘cent.php’;

$content = file_get_contents($file);

$pattern = preg_quote($error, '/');
$pattern = "/^.*$pattern.*\$/m";
if(preg_match_all($pattern, $content, $matches)){
   file_put_contents($cent, $matches[0]);
} else {
	unlink($cent);
}

Nach dem löschen vom Oxid errorlog wird beim nächsten cron durchlauf auch die Datei gelöscht die das Monitoring zur Fehleranzeige braucht. Passt oder?

wenns funktioniert :slight_smile:
ich muss nur bei meinen cronjobs den Pfad in $file vom root des Servers angeben

Ich habe mir ein Modul geschrieben bei dem ich mir die Error-Logs als RSS-Feed ausgebe. Dazu nutze ich die RSS-Feed-Funktion von OXID. Aus jedem Log Eintrag wird ein eindeutiger Feed-Eintrag. Mein Feed-Reader (Thunderbird) sorgt dafür das ich nichts doppelt bekomme. Das Modul steckt in allen OXIDs drin, die ich betreue. So bekomme ich jederzeit mgl. Fehler mit. Downtimes natürlich nicht. Dafür braucht es nach wie vor ein externes Monitoring.
Die Feeds sind je Shop nur mittels individuellen Token abrufbar.