[Agora-commits] agora/ecrire/include/log inc_agoralog_factory.php,
NONE, 1.1.2.1 AgoraLog.php, NONE, 1.1.2.1 log.conf-dist.php,
NONE, 1.1.2.1
oliviermansour at adullact1.hosting.cri74.org
oliviermansour at adullact1.hosting.cri74.org
Mer 21 Déc 11:58:12 CET 2005
Update of /cvsroot/agora/agora/ecrire/include/log
In directory adullact1:/tmp/cvs-serv2027/ecrire/include/log
Added Files:
Tag: SPIP_AGORA_Charlotte
inc_agoralog_factory.php AgoraLog.php log.conf-dist.php
Log Message:
experimentation for a generic Log tools (already usefull for debugging)
--- NEW FILE: inc_agoralog_factory.php ---
<?php
//
// +----------------------------------------------------------------------+
// | Copyright (c) 2005 Clever Age - Olivier Mansour |
// +----------------------------------------------------------------------+
// | Author: Olivier MANSOUR <omansour AT clever-age.com> |
// +----------------------------------------------------------------------+
//
// base class for loggin SPIP-Agora events
// $Id: inc_agoralog_factory.php,v 1.1.2.1 2005/12/21 10:58:10 oliviermansour Exp $
require_once('Log.php');
require_once('PEAR.php');
function &recuperer_instance_agoralog($typeLog) {
static $logs;
require_once(dirname(__FILE__)."/AgoraLog.php");
if (!isset($logs[$typeLog]) or (is_null($typeLog))) {
$log = &AgoraLog::factory($typeLog);
$logs[$typeLog] = $log;
} else {
$log = $logs[$typeLog];
}
if (PEAR::isError($log)) {
die($log->getMessage()); // TODO raiseError retourne une PEAR::Error
}
return $log;
}
?>
--- NEW FILE: AgoraLog.php ---
<?php
//
// +----------------------------------------------------------------------+
// | Copyright (c) 2005 Clever Age - Olivier Mansour |
// +----------------------------------------------------------------------+
// | Author: Olivier MANSOUR <omansour AT clever-age.com> |
// +----------------------------------------------------------------------+
//
// base class for logging SPIP-Agora events
// $Id: AgoraLog.php,v 1.1.2.1 2005/12/21 10:58:10 oliviermansour Exp $
require_once ('Log.php');
class AgoraLog {
// {{{ properties
/**
* Niveau de log pour cette instance
* @var string
* @access private
*/
var $_logLevel;
/**
* objet de type log
* @var Log
* @access private
*/
var $_log;
// }}}
// {{{ constructor
/**
* AgoraLog constructor.
*
* @access public
*/
function AgoraLog () {
}
// }}}
// {{{ factory($typeLog)
/**
* AgoraLog Factory.
*
* @access public
* @param string typeLog - soit un array de handler ou un niveau de log
* @param string logLevel
* @var array or string
*/
function &factory($typelog = null) {
// configuration
if (file_exists(dirname(__FILE__)."/log.conf.php")) {
include (dirname(__FILE__)."/log.conf.php");
} else {
include (dirname(__FILE__)."/log.conf-dist.php");
}
if (is_null($typelog) or is_bool($typelog) ) $typelog = $agoraLogLevels_default; // les spécifs d'AGORA ;-)
if (!is_array($agoraLogLevels[$typelog])) $typelog = $agoraLogLevels_default;
//if (!defined($typelog)) $typelog = $agoraLogLevels_default;
if (is_array ($typelog)) { // une suite de handler ...
die ('NOT IMPLEMENTED YET'); // TODO
} else { // c une chaine : c'est un niveau de log
if (count($agoraLogLevels[$typelog]) > 0) {
$log = &Log::singleton('composite');
foreach ($agoraLogLevels[$typelog] as $key_conf) { // pour chaque handler associé a un niveau de Log
// if ($agoraLogHandler[$key_conf]) {
if (array_key_exists($key_conf, $agoraLogHandler)) {
$$key_conf = &Log::singleton ($agoraLogHandler[$key_conf]['handler'], $agoraLogHandler[$key_conf]['name'], $agoraLogHandler[$key_conf]['ident'], $agoraLogHandler[$key_conf]['conf']);
} else {
$$key_conf = &Log::singleton ('null'); // logging off
}
$log->addChild ($$key_conf); // construction du log composite
}
} else {
$log = &Log::singleton ('null'); // logging off
}
}
// instanciation de mon objet
$AgoraLog = new AgoraLog();
$AgoraLog->_logLevel = $typelog;
$AgoraLog->_log = $log;
// on renvoi l'objet
return $AgoraLog;
}
// }}}
/// {{{ AgoraLog_Message($message)
/**
* Log a message.
*
* @access public
* @param string typeLog - soit un array de handler ou un niveau de log
* @param string logLevel
* @var array or string
*/
/*
function AgoraLog ($message, $logLevel = null) {
if (is_null($logLevel)) $logLevel = $this->_logLevel; // le niveau de log par défaut
*/
function AgoraLog_Message ($message, $loglevel = null) {
if (is_null($loglevel)) $loglevel = $this->_logLevel;
$this->_log->log($message, $loglevel);
}
/// }}}
}
?>
--- NEW FILE: log.conf-dist.php ---
<?php
//
// +----------------------------------------------------------------------+
// | Copyright (c) 2005 Clever Age - Olivier Mansour |
// +----------------------------------------------------------------------+
// | Author: Olivier MANSOUR <omansour AT clever-age.com> |
// +----------------------------------------------------------------------+
//
// fichier de configuration d'example pour le log
// pour la documentation des handlers voir : www.indelible.org/pear/Log/guide.php
// $Id: log.conf-dist.php,v 1.1.2.1 2005/12/21 10:58:10 oliviermansour Exp $
require_once('PEAR.php');
$agoraLogHandler = array (
'win' => array ('handler' => 'win',
'name' => 'LogWindow',
'ident' => 'AgoraLog',
'conf' => array (
'title' => 'SPIP-Agora Logs')
),
'spip_log' => array ('handler' => 'file',
'name' => (dirname(__FILE__)."/../../data/spip-agora.log"),
'ident' => 'spip_log',
'conf' => array ()
),
);
$agoraLogLevels = array (
PEAR_LOG_EMERG => array ('win'),
PEAR_LOG_ALERT => array ('win'),
PEAR_LOG_CRIT => array ('win'),
PEAR_LOG_ERR => array ('win'),
PEAR_LOG_WARNING => array ('win'),
PEAR_LOG_NOTICE => array (),
PEAR_LOG_INFO => array (),
PEAR_LOG_DEBUG => array ('win'),
);
$agoraLogLevels_default = PEAR_LOG_NOTICE;
?>
Plus d'informations sur la liste de diffusion Agora-commits