Répertoire de codes source

Logger plus simple ? utiliser
déposé par philippe
le 10/05/2007
nombre de visites : 10994

edité le 10/05/2007
par philippe

Depuis le ZF 0.9.2, utiliser le logger est plus compliqué, il faut l'instancier, le mettre en registry et quand on veut l'utiliser, il faut aller le chercher dans la registry, ça fait des lignes de codes ? rallonge pour écrire un log.

Je vous propose une classe beaucoup plus simple ? utiliser et qui indique de quel fichier vient le log. Voil? un exemple d'utilisation :

<?php
define ("LOG_FILE","C:/toto.log");
Zend_Loader::loadClass("Kitpages_Log");
// Ensuite partout dans le code, si on veut écrire un code il suffit d'écrire
Kitpages_Log::debug("Mon message de debug");
?>

Les fonctions accessibles sont debug, info, warning, error, alert

A+, Philippe?

<?php
/*
 * @author Philippe Le Van et Cyril Minette (http://www.kitpages.fr)
 */
require_once 'Zend/Log.php';
require_once 'Zend/Log/Writer/Stream.php';
 
class Kitpages_Log {
 
    private $logger = null ;
    ////
    // singleton management
    ////
    private static $_instance = null;
    private function __construct() {
        $this->logger = new Zend_Log() ;
        $this->logger->addWriter( new Zend_Log_Writer_Stream(LOG_FILE));
    }
    public static function getInstance() {
        if (!self::$_instance instanceof self) {
           self::$_instance = new self();
        }
        return self::$_instance;
    }
 
 
    private static function generateMessageLog($message) {
        $dt = date("Y-m-d H:i:s ");
        $backTrace = debug_backtrace();
        $bt = $backTrace[1];
        $err = "[...".substr($bt["file"],-30)."(".$bt["line"].")] "."$message";
        return $err;
    }
    public static function debug($message) {
        return self::getInstance()->logger->log(self::generateMessageLog($message),Zend_Log::DEBUG);
    }
    public static function info($message) {
        return self::getInstance()->logger->log(self::generateMessageLog($message),Zend_Log::INFO);
    }
    public static function warning($message) {
        return self::getInstance()->logger->log(self::generateMessageLog($message),Zend_Log::WARN);
    }
    public static function error($message) {
        return self::getInstance()->logger->log(self::generateMessageLog($message),Zend_Log::ERR);
    }
    public static function alert($message) {
        return self::getInstance()->logger->log(self::generateMessageLog($message,Zend_Log::ALERT));
    }
}
?>
 
Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages