class MyClass{
function __construct(){
//Дебаг через log.txt в корне сайта
if(JFactory::getConfig()->error_reporting == 'development'){
jimport('joomla.log.log');
$options = array( 'logger' => 'formattedtext', 'text_entry_format' => '{DATE}' . chr(9) . '{TIME}' . chr(9) . '{PRIORITY}' . chr(9) . '{CATEGORY}' . chr(9) . '{MESSAGE}', 'text_file_path' => JPATH_BASE, 'text_file' => 'log.txt' );
$category = array('NameYoursComponent');
Jlog::addLogger($options, JLog::ALL, $category);
// где JPATH_BASE и text_file являются путь и имя файла для логирвоания
}
}
function MyFunction(){
if(JFactory::getConfig()->error_reporting == 'development'){
//$fl = fopen(JPATH_BASE."/log.txt", "w"); fclose($fl);
// Расскоментируйте строку если нужно очищать файл лога каждый раз.
JLog::add('Test message!'); // или
JLog::add('Test object:'.print_r($TestDumpObject,true)); // или
JLog::add('Test message!', JLog::WARNING, 'NameYoursComponent');
// где $TestDumpObject просматриваемый объект, NameYoursComponent -имя компонента для которого будет вестись отдельный ЛОГ.
}
}
//или так через системное сообщение
function MyFunction2(){
if(JDEBUG || JFactory::getConfig()->error_reporting == 'development')
JFactory::getApplication()->enqueueMessage("TestMessage: ".print_r( $TestDumpObject, TRUE));
// где $TestDumpObject просматриваемый объект.
}
//или так
function MyFunction3(){
if(JDEBUG || JFactory::getConfig()->error_reporting == 'development')
jimport('joomla.error.log');// Подключаем библиотеку JLog
$log = JLog::getInstance('my.log.php'); // Инициализация JLog-объекта, файл логов будет называться "my.log.php"
$log->addEntry(array('LEVEL' => '1','STATUS' => 'SOME ERROR:','COMMENT' => 'Your message here'));// Добавляем какие-то данные строку в лог
}
}