Jeśli koniecznie chcesz na plikach tekstowych to zobacz na specjalnie zrobiony przeze mnie kod:
<?php
/*--- Session Code ---*/
// Definiowanie zmiennych
$error=false;
$ftype=0;
$fatal=false;
// Zapisywanie do pliku
function errorlogS($ftype,$etype){
$fd=fopen('log.info','r+'); $str=$ftype.'|'.$etype.'|'.$now.PHP_EOL;
}
// Ilość określonych błędów w określonym czasie
function errorlogWT($ftype,$etype,$min=5){
$count=0;
$fd=fopen('log.info','r'); if($cnt!=""){
if($tab[2]>$date){
if($tab[0]==$ftype&&$tab[1]==$etype){
$count++;
}
}else{break;}
}
}
return $count;
}
// Przykład na cURL
$ch=curl_init();
/*---- jakiś kod ----*/
$er_type=curl_errno($ch); // Sprawdzenie wystąpienia błędu
if($er_type!=0){$error=true; $ftype=1; if(errorlogWT($ftype,$er_type)>20){$fatal=true;}
// Tutaj mogą być kolejne warunki sprawdzające czy wystąpił błąd, zmieniające wartości zmiennych
if($error){ // Start zapisu
errorlogS($ftype,$er_type);
}
if($fatal){echo 'Czegoś nie przemyślałem i działa źle wywalając ciągłe błędy :(';}} ?>
Dodatkowo koniecznie trzeba utworzyć plik log.info. Jeśli ktoś nie wie jak to zrobić na szybko mała instrukcja

:
Otwieramy Notatnik (notepad.exe)
Klikamy Plik -> Zapisz jako...
W polu
Nazwa pliku: wpisujemy log.info
W polu
Zapisz jako typ: wybieramy
Wszystkie pliki (*.*)Klikamy przycisk
ZapiszTak, wiem że dla większości to żadna nowość. Ważne, jednak, aby ten plik znajdował się w tym samym katalogu na serwerze co plik wykonujący funkcje. W innym wypadku należy zmienić ścieżki dostępu do pliku log.info.
Bardzo ważne jest to, że zapis w plikach tekstowych jest mało bezpieczny i łatwo może dojść do wycieku danych. W celu zapewnienia minimum podstawowego bezpieczeństwa należy ustawić odmowę dostępu do pliku log.info w pliku .htaccess, lub zmienić CHMODy tego pliku (serwery Linuxowe).
I mały bonus:
function clearlog(){
$str="";
$fd=fopen('log.info','r+'); if($cnt!=""){
$date=time()-(30
*24
*60
*60
); // 30 dni if($tab[2]>$date){
$str.=$cnt;
}
}
}
}
Funkcja usuwająca wpisy starsze niż 30 dni. Należy ją uruchomić w CRONie lub co jakiś czas np. za pomocą palenu admina.
Skrypt nie jest optymalny dla bardzo dużych serwisów.