Почему мой файл журнала переписывает предыдущий файл, а не добавляется в файл? - PullRequest
0 голосов
/ 04 мая 2018

У меня проблемы с добавлением файла журнала. Если размер моего файла журнала превышает 50 МБ, создайте новый файл журнала. Если нет, то добавьте в предыдущий файл. Я не уверен, правильно ли я использую FILE_APPEND. Будет ли лучше использовать fopen и fwrite?

Вот мой код ниже:

//this is the file to test size to determine whether to append to it or start a new log file
        if ($latestFile != '') {
            $latestFileSize = filesize($latestFile);//file size in bytes (1/1000000 of MB)
        }

        if ($latestFileSize != 0) {
            $fileSizeThreshold = 50 * 1000000;//Threshold for log file size limit in bytes (50 MB)
            if ($latestFileSize > $fileSizeThreshold) {
                    //The latest results file deletion log file is over 50 MB in size, so create a new one
                file_put_contents("c:\\sites\\{$logFileName}", $log);
            } else {
                    //2. Troubleshoot why the FILE_APPEND is not working and fix it. What is the normal behavior of the FILE_APPEND?
                    //The latest results file deletion log file is NOT over 50 MB in size, so append log entry to latest one
                file_put_contents("c:\\sites\\{$latestFileName}", $log, FILE_APPEND);
            }
        } else {
                //This is the first file in the log directory. Create it.
            file_put_contents("c:\\sites\\{$logFileName}", $log);
        }

        closedir($handle);
    }//end if $handle

1 Ответ

0 голосов
/ 05 мая 2018

Вы уверены, что $latestFileSize не всегда == 0?

Обычно с file_put_contents нет ничего плохого, сначала устраните неисправность логики. Убедитесь, что вы добираетесь до file_put_contents с FILE_APPEND, так как способ его использования идеально подходит.

...