У меня есть функция, которая отслеживает события, которые происходят через скрипт. Чтобы эффективно использовать свои ресурсы, я решил сжать данные, которые он генерирует. Тем не менее, я продолжаю получать эту ошибку:
Unknown error type: [2] gzuncompress() [function.gzuncompress]: data error
Вот функция:
function eventlog($type, $message){ // Types: account,run,queue,system // Set up file name/location $eventfile = '/myprivatedirectory/'.date('Ymd').$type.'.log'; if(file_exists($eventfile)){ while(!is_writable($eventfile)){clearstatcache();} $fh_log = fopen($eventfile,'r+'); flock($fh_log, LOCK_EX); $logcontents = gzuncompress(fread($fh_log,filesize($eventfile))); rewind($fh_log); ftruncate($fh_log, 0); $logcompressed = gzcompress($logcontents.$message."\n"); fwrite($fh_log,$logcompressed); flock($fh_log, LOCK_UN); fclose($fh_log); } else { $fh_log = fopen($eventfile,'w'); flock($fh_log, LOCK_EX); $logcompressed = gzcompress($message."\n"); fwrite($fh_log,$logcompressed); flock($fh_log, LOCK_UN); fclose($fh_log); } }
вfunction eventlog($type, $message){ // Types: account,run,queue,system // Set up file name/location $eventfile = '/myprivatedirectory/'.date('Ymd').$type.'.log'; if(file_exists($eventfile)){ while(!is_writable($eventfile)){clearstatcache();} $fh_log = fopen($eventfile,'r+'); flock($fh_log, LOCK_EX); $logcontents = gzuncompress(fread($fh_log,filesize($eventfile))); rewind($fh_log); ftruncate($fh_log, 0); $logcompressed = gzcompress($logcontents.$message."\n"); fwrite($fh_log,$logcompressed); flock($fh_log, LOCK_UN); fclose($fh_log); } else { $fh_log = fopen($eventfile,'w'); flock($fh_log, LOCK_EX); $logcompressed = gzcompress($message."\n"); fwrite($fh_log,$logcompressed); flock($fh_log, LOCK_UN); fclose($fh_log); } }
Поэтому каждый день, в полночь, создается новый журнал ошибок, так как происходит любое из перечисленных событий (учетная запись, запуск, очередь, система), иначе каждое новое событие добавляется к уважаемому файлу журнала.
Я хотел бы сохранить сжатие, но я не могу продолжать эти ошибки, может кто-нибудь помочь? Заранее спасибо.