Протоколирование (логирование)
Введение
Хотя класс конфигурации и позволяет вам узнать что происходит «под капотом» приложения, иногда возникает необходимость записать вывод отладки на диск. В мире, который становится все более зависимым от технологий вроде 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 должна быть доступной для записи веб-сервера чтобы протоколирование работало корректно.
<< Кэширование |
Тестирование >>