jeu
31
mai '07
J'ai fait joujou avec log de PEAR
En gros je crée un singleton pour chaque type.
Je l'ajoute dans un composite puis je log.
<?php // include the pear class. require_once 'Log.php'; // FILE touch('./out.log'); $loggerFile = &Log::singleton('file', './out.log', 'TEST'); // DISPLAY $confDisplay = array('error_prepend' => '<font color="#ff0000"><tt>', 'error_append' => '</tt></font>'); $loggerDisplay = &Log::singleton('display', '', '', $confDisplay, PEAR_LOG_DEBUG); // Null $loggerNull = &Log::singleton('null'); // FIREBUG $loggerFirebug = &Log::singleton('firebug', '', 'PHP', array('buffering' => true), PEAR_LOG_DEBUG); // error_log $loggerErrorLog = &Log::singleton('error_log', PEAR_LOG_TYPE_SYSTEM, 'ident'); // MAIL $confMail = array('subject' => 'Important Log Events'); $loggerMail = &Log::singleton('mail', 'webmaster@example.com', 'ident', $confMail); // Windows $confWindows = array('title' => 'Sample Log Output'); $loggerWindows = &Log::singleton('win', 'LogWindow', 'ident', $confWindows); // sql $confSQL = array('dsn' => 'mysql://root@localhost/logs'); $loggerSQL = &Log::singleton('sql', 'log_table', 'ident', $confSQL); /* Creating a new database connection. */ $confSQLite1 = array('filename' => 'c:\var\log.db', 'mode' => 0666, 'persistent' => true); $loggerSQLite1 =& Log::factory('sqlite', 'log_table', 'ident', $confSQLite1); $loggerSQLite1->log('logging an event' . __LINE__ , PEAR_LOG_WARNING); /* Using an existing database connection. */ unset($error); $db = sqlite_open('c:\var\log.db', 0666, $error); $loggerSQLite2 =& Log::factory('sqlite', 'log_table', 'ident', $db); $loggerSQLite2->log('logging an event ' . __LINE__ , PEAR_LOG_WARNING); Ajoute les messages dans la table sqlite désignée sqlite_close($db); $composite = &Log::singleton('composite'); //$composite->addChild($console); $composite->addChild($loggerFile); $composite->addChild($loggerDisplay); $composite->addChild($loggerWindows); $composite->addChild($loggerSQL); $composite->addChild($loggerNull); $composite->addChild($loggerFirebug); $composite->addChild($loggerErrorLog); $composite->addChild($loggerMail); $composite->log('This event will be logged to both handlers.' . date('c')); $loggerWindows->log('This event will be logged only on Popup.'); // ouvre un popup et affiche tous les messages $loggerFile->log('This event will be logged only to File.'); //Stocke les messages dans un fichier $loggerDisplay->log('This event will be logged only to Display.'); //Affiche les messages dans le flux html $loggerNull->log('This event will be logged only into the FIELDS OF THE NEPHILIM.'); //ne fait rien <img src="/blog/themes/travelogue/smilies/smile.gif" alt=":-)" class="smiley" /> $loggerFirebug->log('This event will be logged only to FireBug.'); // Liste les messages dans FireBug http://extensions.geckozone.org/FireBug $loggerMail->log('This event will be logged only by mail.'); // tente d'envoyer un mail (dans mons cas sans smtp ca n'a pas marché) ?>








Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire