Как я могу избежать ошибок, в которых отказано в разрешении от функции php error_log, когда несколько процессов вызывают ее, а назначение - это специальный файл журнала?
Проект с открытым исходным кодом CDash использует PHP-функцию error_log для записи информации, предупреждений и ошибок, специфичных для CDash, в специальный файл журнала. По умолчанию этот пользовательский файл журнала находится в исходном дереве CDash в файле "backup/cdash.log".
Файл log.php вызывает error_log следующим образом:
$logged = error_log($error, 3, $logFile);
Проблема, которую я наблюдаю (в Windows XP с XAMPP 1.8.1, включая php 5.4.7), заключается в том, что когда запускается набор тестов CDash, и несколько процессов пытаются записать через CDash add_log
функция, второй и более поздние процессы получают ошибки "отказано в разрешении", пока первый процесс не завершится и не освободит его, очевидно, блокировку $logFile
,
Как я могу избежать ошибок, в которых отказано в разрешении от функции php error_log, когда несколько процессов вызывают ее, а назначение - это специальный файл журнала?