столкнулся с довольно странным ограничением на размер файла - при попытке через fwrite записать в файл больше 4096кб получаю Internal Server Error, с меньшими файлами все работает.
вот, собтсвенно, код:
     if ( !file_exists($log_file) || ( file_exists($log_file) && is_writable($log_file) )  ) {        
           if (!$handle = fopen($log_file, \'a+\')) { 
                trigger_error(\'failed openning event log: \'.$log_file, E_USER_NOTICE);
                return false;
           } 
           if (!fwrite($handle, $log_data)) { 
               trigger_error(\'failed writing to event log: \'.$log_file, E_USER_NOTICE);
               return false; 
           } 
           fclose($handle);                             
        } else { 
            trigger_error(\'event log is not writeable: \'.$log_file, E_USER_NOTICE);
            return false; 
        }
 
проверено на php 4.1.2 и php 5.1.1, safe_mode = on