При разработки расширений многие не используют такой инструмент как логирование, а зря. При правильном использовании можно сэкономить кучу времени. При работе с большими файлами. Для того чтоб не загромождать свой код строками логов я оборачиваю логирование в функцию, а потом в нужном месте просто вызываю ее. Допустим я работаю с моделью компонента.
Создадим функцию в файле с которым вы работаете.
А для того чтоб вызвать эту функцию в любом месте нашей модели пропишем так.
Рассмотрим подробнее.
- Первым параметром передаваемым в функцию будет текст сообщения.
- Вторым тип ошибки или сообщения. (опишу ниже)
- Третьим категория.
С текстом сообщения думаю все и так ясно.
Тип ошибки состоит из первых двух строчных букв заголовка.
В категории я использую имя файла в которм вызвана функция т.е. файл с ошибкой. Это позволяет быстро найти проблему в больших компонентах.
Рассмотрим функцию.
jimport('joomla.log.logger.formattedtext');
- Подгрузка библиотеки.
$options
- массив конфигурационных параметров, где:
text_file
- Имя текстового файла для логирования, по умолчанию 'error.php'text_file_path
- Путь к папке с логами (если параметр отсутствует, путь возьмется из конфига)text_file_no_php
- Параметр проверяющий формат, если файл .php используем тип false, если текстовый или другой формат, то truetext_entry_format
- Форматирование записываемого текста/сообщения
$logger = new JLogLoggerFormattedtext( $options );
- Загружаем класс с параметрами
$log = new JLogEntry()
- Данные для записи, где:
$message
- Текст сообщения.$type
- Тип ошибки.$category
- Категория.дата
- В формате ГГГГ-ММ-ДД ЧЧ:ММ:СС. По умолчанию, создает текущую дату и время на сервере.array()
- Массив с дополнительными контекстными сообщениями.
$logger->addEntry( $log );
- Запись в лог.
После разработки функцию можно удалить, а можно и оставить для критических ошибок.