CakePHP : Manual/Logging

Протоколирование (логирование)

Введение

Хотя класс конфигурации и позволяет вам узнать что происходит «под капотом» приложения, иногда возникает необходимость записать вывод отладки на диск. В мире, который становится все более зависимым от технологий вроде AJAX и SOAP отладка может быть сильно затруднена.

Протоколирование позволяет вам понимать что происходит в вашем приложении с течением времени. Какие слова используются в поиске? Какие ошибки показываются пользователям? Как часто выполняется тот или иной запрос?

Протоколирование в CakePHP устроено очень просто. Функция log() является методом класса Object, который является родителем почти для всех классов приложения. Если вы находитесь в окружении любого класса CakePHP (Model, Controller, Component... почти любого), вы можете протоколировать данные.

Использование

Функция log() принимает два параметра. Первый — это сообщение, которое вы хотите записать в лог-файл. По умолчанию, тип этого сообщения — ошибка — записывается в лог ошибок, который расположен в app/tmp/logs/error.log.

//Выполняется внутри класса CakePHP:
$this->log("Что-то не работает!");
 
//Результат запишется в файл app/tmp/logs/error.log
2007-11-02 10:22:02 Error: Что-то не работает!


Второй параметр используется для того чтобы определить тип сообщения, которое вы пишете в лог. Если не указывается, то, по умолчанию, принимает значение LOG_ERROR, и сообщение попадает в лог ошибок, как в прошлом примере. Вы можете указать значение LOG_DEBUG, тогда сообщение запишется в файл app/tmp/logs/debug.log.

//Выполняется внутри класса CakePHP:
$this->log('Отладочное сообщение.', LOG_DEBUG);
 
//Результат запишется в файл app/tmp/logs/debug.log (а не в error.log)
2007-11-02 10:22:02 Error: Отладочное сообщение.


Замечание: директория app/tmp должна быть доступной для записи веб-сервера чтобы протоколирование работало корректно.

<< Кэширование | Тестирование >>