[PHP] [ERROR] Jak utworzyć prosty czytnik błędów PHP dla danej aplikacji (produkcyjnej) ?

Tworząc aplikację w PHP, trudno się nie ustrzec od popełnienia błędu. Oczywiście można w aplikacji wymusić pokazywanie stosownych komunikatów (lub w PHP.ini) i na bieżąco je kontrolować/ niwelować. Co jednak, jeśli chcemy śledzić błędy np w procesach ukrytych, które wykonują się np za pomocą ajaxa? A na domiar złego z pewnych względów wyłączone mamy raportowanie bieżących błędów? Oczywiście pozostaje zajrzeć do pliku logów, jakim domyślnie może być np php_error_log i śledzić błędy. Ale…, jeśli jakiś proces się zapętli w naszej aplikacji, to tych błędów jest tyle, że robi się słabo… Najprościej zrobić wówczas prosty czytnik pokazujący np 150 ostatnich błędów i sprawa załatwiona, nie musimy niczego dodatkowo ciągle otwierać, odświeżać, a ponadto monitorujemy stan aplikacji nawet procesów, których nie widzimy, np wywoływanych ajaxem, czy cronem.

Krok pierwszy, to ustalić, gdzie taki plik się zapisuje/nadpisuje… Oczywiście zaglądamy ponownie do php.ini i sprawdzamy odpowiedni zapis. Na potrzeby danej aplikacji, można go zwyczajnie przenieść w inne miejsce, z którego wygodniej już będziemy go mogli odczytywać np funkcją fopen, czy file. Dla przykładu dla xammp mamy taki zapis:

A w kroku 2 tworzymy moduł/plik, który następnie includujemy w odpowiednie miejsce w aplikacji i gotowe. Przykładowo może on wyglądać tak:

Krótko i na temat. Czytamy wspak dodające się błędy dzięki funkcji array_reverse i ograniczamy ilość linii zmienną $x. Proste? Error_reporting(0) opcjonalnie.

PS log, jaką czyta ten skrypt tworzy się dla  PHP Version 5.3.8. Prawdopodobnie działa i z innymi. Nie testowałem.