В предлагаемом материале описан класс Zend_Log и поддерживаемые им адаптеры; показан способ сохранения сообщений в одиночный и множественный лог.
Обзор
Класс
Zend_Log обеспечивает запись сообщений в лог (т. н. «журналирование»). Этот класс используется статически (т. е. без создания нового объекта) для хранения объектов (адаптеров), непосредственно занимающихся записью сообщений. Для каждого лога (журнала) регистрируется отдельный адаптер с учетом способа записи (см. «Адаптеры»). Все такие объекты реализованы с использованием интерфейса Zend_Log_Adapter_Interface.
Для успешной работы необходимо включить файлы с классом Zend_Log и всеми используемыми адаптерами.
require_once 'Zend/Log.php'; // Zend_Log base class
require_once 'Zend/Log/Adapter/Console.php'; // Console log adapter
require_once 'Zend/Log/Adapter/File.php'; // File log adapter
Подсказка
Последнее требование может быть снято благодаря использованию магической функции __autoload().
Адаптеры
Поддерживаемые адаптеры
Zend_Log_Adapter_Console
Zend_Log_Adapter_Db
Zend_Log_Adapter_File
Zend_Log_Adapter_Null
При создании нового адаптера для записи сообщений
в файл его конструктору передается название файла. Адаптер для записи сообщений в базу данных принимает два аргумента: объект адаптера для работы с базой данных (наследника Zend_Db_Adapter_Abstract - см. Глава 15, Класс Zend_Db) и название таблицы для хранения сообщений.
Регистрация адаптеров
Для регистрации адаптера используется статический метод Zend_Log::registerLogger(), аргументом которого является новый объект адаптера.
Третий необязательный аргумент может быть использован
для задания названия адаптера, который будет использован для сохранения данного сообщения (при наличии нескольких зарегистрированных адаптеров).
Контрольные вопросы и задания
Зарегистрированы два адаптера, как это показано ниже. Выведите сообщение $message уровня предупреждения на консоль.
В свое время был предложен способ обработки исключительных ситуаций, возникающих при запуске приложения, основанного на Zend Framework («Ответы и решения к Глава 4, Быстрый старт», задание 8). Предложите способ его доработки с целью сохранения информации об исключительной ситуации в лог файл
error.log, находящийся в корневой директории приложения.