2011-09-28 95 views
5

我正在使用Joomla平台11上新建的Joomla 1.7系统 - 我以前的Joomla版本中的所有日志记录代码都不再有效(它们似乎在写日志条目,但是与不正确的语法,所以消息是空白的)。登录Joomla平台11 JLog

有没有人知道新版本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的文档和网页,发现没有例子如何使用这个类。

谢谢!

+0

为寻找这个信息,看来他们已经保持了existi ng Joomla 1.5日志记录功能,用于向后兼容。但是,由于某些原因,“COMMENT”全部上限不再起作用 - 您必须使用“注释” – julio

回答

8

是,日志改了一下确实的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

@ hbit--谢谢!这正是我需要的。 – julio

0

@hbit THX一个lot..I固定喜欢这一点,它工作..

,但我作为函数创建..

<?php 
function logWrite($level, $values, $file='%s.php',$path='',$showOnTop=0, 
    $option='',$component=''){ 
/**** 
jlog Joomla 3.4 
created by:gundambison (2015.04.26). 
THX: [email protected] 
****/ 
    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 
****/ 
?> 

希望这会帮助