Logging in Joomla platform 11 JLog

2019-02-10 09:18发布

I'm playing with the new Joomla 1.7 system built on the Joomla platform 11-- and all my logging code from earlier versions of Joomla no longer work (they appear to be writing log entries but with improper syntax, so the messages are blank).

Does anyone know the proper syntax for the new version of JLog? Here's my existing code--

$log = &JLog::getInstance('test.log.php');
$log->addEntry(array('COMMENT' => 'A test Logging message'));

This creates the log file, but the actual log entry looks like this:

#<?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   -

I've searched the Joomla docs and the web and found no examples of how to use this class.

Thanks!

2条回答
来,给爷笑一个
2楼-- · 2019-02-10 10:16

@hbit thx a lot..I fixed like this and it work..

but I created as function..

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

Hope this Help

查看更多
Ridiculous、
3楼-- · 2019-02-10 10:24

Yes, the logging changed a bit indeed in 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');
查看更多
登录 后发表回答