Я играю с новой системой Joomla 1.7, построенной на платформе Joomla 11, и весь мой код регистрации из более ранних версий Joomla больше не работает (они, похоже, записывают записи журнала, но с неправильным синтаксисом, поэтому сообщения пустые) ,
Кто-нибудь знает правильный синтаксис для новой версии JLog? Вот мой существующий код –
$log = &JLog::getInstance('test.log.php'); $log->addEntry(array('COMMENT' => 'A test Logging message'));
Это создает файл журнала, но фактическая запись в журнале выглядит следующим образом:
#<?php die('Forbidden.'); ?> #Date: 2011-08-08 16:59:42 UTC #Software: Joomla Platform 11.1 Stable+Modified [ Ember ] 01-Jun-2011 06:00 GMT #Fields: date time priority clientip category message 2011-08-08 16:59:42 INFO 127.0.0.1 -
Я искал документы Joomla и Интернет и не нашел примеров того, как использовать этот класс.
Благодаря!
Да, запись в журнале немного изменилась в Joomla 1.7:
// Include the JLog class. jimport('joomla.log.log'); // Add the logger. JLog::addLogger( // Pass an array of configuration options array( // Set the name of the log file 'text_file' => 'test.log.php', // (optional) you can change the directory 'text_file_path' => 'somewhere/logs' ) ); // start logging... JLog::add('Starting to log');
@hbit thx много .. Я исправил, как это, и он работает.
но я создал как функцию ..
<?php function logWrite($level, $values, $file='%s.php',$path='',$showOnTop=0, $option='',$component=''){ /**** jlog Joomla 3.4 created by:gundambison (2015.04.26). THX: hbit@stackoverflow ****/ jimport('joomla.log.log'); $level=strtoupper($level); //You can change this com_name $component= $component==''? 'com_gundambison': $component; $date= date("Ymd"); $filename= sprintf($file, $date); $format= $option=='' ?"{TIME}\t{CLIENTIP}\t{CATEGORY}\t{MESSAGE}": $option; // create options and text $txt = is_array($values)? json_encode($values): $values; $options = array('text_file' => $filename,'text_entry_format'=>$format ); $options['text_file_path']=$path==''?'logs': $path; JLog::addLogger ($options); /* if you want the error to show in your page. */ if($showOnTop==1){ JLog::add("$level\t$txt"); }else{ JLog::add("$level\t$txt",$level,$component); } } /**** result: 14:28:39 ::1 com_whatever ALERT task:error ****/ ?>
Надеюсь, что эта помощь