Как создать файл журнала в PHP

У меня есть 2 функции для анализа каждого файла Excel, их размеры 673 КБ и 131 КБ. У них одинаковый код, только имена. Одна функция считывает данные из файла Excel, а другая функция возвращает:

Fatal Error: Allowed Memory Size of 134217728 Bytes Exhausted (Tried to allow 72 bytes)

У меня есть другие файлы Excel, их размеры больше, чем у этих, и их функции разбора работают хорошо.

Я хочу создать файл журнала для регистрации каждого действия, которое они делают внутри системы, но я понятия не имею, как это сделать. С другой стороны, я нашел это решение в Stackoverflow для @Lawrence Cherone: введите описание ссылки здесь

Но проблема в том, что в первый раз, когда я буду делать logfile, я не знаю, как его создать? Я создаю новый файл и помещаю его в свой проект? Как мне это выполнить и как я могу увидеть причину ошибки в моей функции? Или я помещаю этот файл в функцию, когда у меня возникает ошибка, подобная решению, предложенному @Lawrence Cherone? Это решение, кажется, работает нормально, и проблема решена. Ниже приведен мой небольшой код моей функции, можете ли вы указать мне, как создать этот файл журнала для его отладки:

public function parseEquipment($filePath = null) {
        set_time_limit(0);
        $listEquipement = [];       
        $count = 0;
        $chunkSize = 1024;
        $objReader = PHPExcel_IOFactory::createReader(PHPExcel_IOFactory::identify($filePath));
        $spreadsheetInfo = $objReader->listWorksheetInfo($filePath);
        $chunkFilter = new \Floose\Parse\ChunkReadFilter();
        $objReader->setReadFilter($chunkFilter);
        $objReader->setReadDataOnly(true);
        $chunkFilter->setRows(0, 1);
        $objPHPExcel = $objReader->load($filePath);
        $totalRows = $spreadsheetInfo[0]['totalRows'];
        for ($startRow = 1; $startRow <= $totalRows; $startRow += $chunkSize) {
            $chunkFilter->setRows($startRow, $chunkSize);
            $objPHPExcel = $objReader->load($filePath);
            $sheetData = $objPHPExcel->getActiveSheet()->toArray(null, null, true, false);
            $startIndex = ($startRow == 1) ? $startRow : $startRow - 1;

            if (!empty($sheetData) && $startRow < $totalRows) {             
                $dataToAnalyse = array_slice($sheetData, $startIndex, $chunkSize);
                //echo 'test1'; 
                if($dataToAnalyse[1][0]==NULL){
                    //echo 'test2';
                    break;
                }

                //echo 'test3';
                //var_dump($sheetData);
                for ($i = 0; $i < $chunkSize; $i++) {
                    if ($dataToAnalyse[$i]['0'] != NULL) {
                        //echo 'OK';
                        $listEquipement[] = new Article($dataToAnalyse[$i]['3'], $dataToAnalyse[$i]['4'], $dataToAnalyse[$i]['2']);
                    //   echo 'test4';                      
                        $count++;
                        }
                }
            }
            $objPHPExcel->disconnectWorksheets();
            unset($objPHPExcel, $sheetData);
        }   

        //var_dump(array_slice($sheetData, $startIndex, $chunkSize););
        return $listEquipement; 
    }

person Nazly    schedule 14.05.2017    source источник


Ответы (1)


person    schedule
comment
Где я помещаю эту строку вместо echo ? а /var/tmp/custom-errors.log — это путь доступа к файлу журнала? - person Nazly; 14.05.2017
comment
где вы хотите что-то записать в файл, вы можете использовать эту строку там - person mujuonly; 14.05.2017