Вход в платформу Joomla 11 JLog - PullRequest
       8

Вход в платформу Joomla 11 JLog

5 голосов
/ 28 сентября 2011

Я играю с новой системой 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 и Интернет и не нашел примеров использования этого класса.

Спасибо!

Ответы [ 2 ]

8 голосов
/ 30 сентября 2011

Да, запись в журнале 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');
0 голосов
/ 26 апреля 2015

@ хбит, спасибо ... я исправил вот так и всё заработало ..

но я создал как функцию ..

<?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
****/
?>

Надеюсь, что эта помощь

...