♦ 2 - порт отладки на машине, если такой имеется. Третий аргумент задает фактическое имя хоста и номер порта в формате hostname : port. Четвертый аргумент опускается.
♦ 3 - локальный файл. Третий аргумент задает путь к файлу. Конечно, РНР должен иметь права записи в этот файл. Четвертый аргумент в этом случае опускается.
Вот пример сценария, использующего функцию error_log( ): <?php
//Log_Errors. php
//отключение вывода ошибок в пользу, error_log() error_reporting(0); if {
// сообщение об ошибке, регистрируемое в журнале веб-сервера error_log("File could not be opened", 0); // сообщение об ошибке регистрируется как e-mail error_log("File could not be opened", 1, "mailto:phpuser@php.wrox.com">phpuser@php.wrox.com",
"Reply-To: mailto:phpcoder@somedomain.com">phpcoder@somedomain.com"); // send to debug port error_,log("fiie could not be opened", 2,
"debugmachine. somedomain. com: 333');
// запись сообщения об ошибке в файл error_log("File could not be opened", 3,
"/va r/adm/logs/php_e r rors.log");
>
?>
На практике, однако, вывод сообщений об ошибках не требуется основывать лишь на этих четырех уровнях. В действительности они иногда полезнее в соединении с функциями, которые направляют сообщение об ошибке тому, кто поддерживает работу веб-сайта. Это иллюстрирует следующий код:
<?php
//Route_Error. php
function logContentError($msg) {
error_log($msg, 0);
error_log($msg, 1, "mailto:content.manager@foowidgets.com">content.manager@foowidgets.com", "Reply-To: mailto:content.manager@foowidgets.com">content.manager@foowidgets.com");
}
function iogOBError(Smsg) (
error_log($msg, 0);
error_log($msg, 1, "mailto:content.manager@foowidgets.com">content.manager@foowidgets.com",
"Reply-To: mailto:content.manager@foowidgets.com">content.manager@foowidgets.com"); error_log($msg, 3, "/titip/dberrors.log"); '
}
?>
Функции сообщения об ошибках logContentError() и logDBError() вызываются, когда возникают ошибки, связанные с содержимым или базой данных соответственно. Функции выполняют маршрутизацию сообщений об ошибках сопровождающему сайт или в файл журнала.
Утилиты отладки
Теперь, когда у нас есть ясное понимание различных ошибок, которые могут вкрасться в сценарии, и способов их обработки, можно рассмотреть различные инструменты для поиска и исправления ошибок. Мы рассмотрим инструменты как коммерческие, так и с открытым исходным кодом, от простых утилит командной строки до полноценных отладчиков, интегрированных в IDE. Вот некоторые распространенные утилиты: