Поправить php код записи лога
Есть код, сохраняющий лог обращений к странице:
#запись логов начало
$ra = $_SERVER['REMOTE_ADDR'];
$hxff = $_SERVER['HTTP_X_FORWARDED_FOR'];
$hci = $_SERVER['HTTP_CLIENT_IP'];
$log_home = $_SERVER['REQUEST_URI'];
$log_useragent = $_SERVER['HTTP_USER_AGENT'];
$log_referrer = $_SERVER['HTTP_REFERER'];
$log_language = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
/* указать точный путь к папке логов */ $log_file=$_SERVER['HTTP_HOST'].".log"; //создать папку куда пишем логи!!
$col_zap=50000; //строк в файле не более
date_default_timezone_set('Europe/Samara');
$log_date = date("H:i:s d/M/y");
$log_lines = file($log_file);
while(count($log_lines) > $col_zap) array_shift($log_lines);
$log_lines[] = "[".$log_date."] ".$ra." [".$ccode."] (".$hxff."|".$hci.") ".$log_language." | ".$log_useragent."\n".$log_home." | Ref: ".$log_referrer."\r\n";
file_put_contents($log_file, $log_lines);
#echo 'REMOTE_ADDR: ' . $ra . '
HTTP_X_FORWARDED_FOR: ' . $hxff . '
HTTP_CLIENT_IP: ' . $hci;
#запись логов конец
Переменная $col_zap=50000; означает, что максимальная длина лога 50000 строк. Но когда лог разрастается, выдает ошибку 500 и страница с таким кодом не открывается:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 72 bytes) in .......
А сам лог (вместо нужных записей) содержит строки: http://joxi.ru/4Ak4vEQcynPdgr?d=1
Вот лог: http:/alfatracker.ru/downloads/test.log
Нужно поправить этот код, чтобы по мере роста лог-файла до 50000 строк, удалялись более ранние строки освобождая место новым записям.