При разработки расширений многие не используют такой инструмент как логирование, а зря. При правильном использовании можно сэкономить кучу времени. При работе с большими файлами. Для того чтоб не загромождать свой код строками логов я оборачиваю логирование в функцию, а потом в нужном месте просто вызываю ее. Допустим я работаю с моделью компонента.
Создадим функцию в файле с которым вы работаете.
А для того чтоб вызвать эту функцию в любом месте нашей модели пропишем так.
Рассмотрим подробнее.
- Первым параметром передаваемым в функцию будет текст сообщения.
- Вторым тип ошибки или сообщения. (опишу ниже)
- Третьим категория.
С текстом сообщения думаю все и так ясно.
Тип ошибки состоит из первых двух строчных букв заголовка.
В категории я использую имя файла в которм вызвана функция т.е. файл с ошибкой. Это позволяет быстро найти проблему в больших компонентах.
Рассмотрим функцию.
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 ); - Запись в лог.
После разработки функцию можно удалить, а можно и оставить для критических ошибок.

