Accueil > > > PHP 5 CLASSE DE LOG PARAMÉTRÉE PAR UN FICHIER XML
PHP 5 CLASSE DE LOG PARAMÉTRÉE PAR UN FICHIER XML
Information sur la source
Description
Cette source est simplement une classe de logs paramétrée par un fichier xml : on peut y ajouter différents types de logs (debug, error, sql, etc...) définir un fichier différent pour chaque type et définir une adresse mail qui recevra la liste des erreurs. Remarque : l'adresse mail est optionnelle (évite le spam dans un projet en cours de développement). Cette source se décompose en 3 fichiers : log.php -> contient la classe en elle même logConfig.xml -> configuration test.php -> un fichier de test que j'ai utilisé pour le développement
Source
<?php
/**
* Log manager class
*
*/
class Log
{
/**
* Default log file
*
*/
const DEFAULT_LOG_FILE = 'default.xml';
/**
* Xml file initialization
*
*/
const INITIALIZATION_TEXT = "<?xml version='1.0' encoding='ISO-8859-1' standalone='yes'?><logs></logs>";
/**
* Default mail subject
*
*/
const MAIL_SUBJECT = 'Error log';
/**
* log type
*
* @var string
*/
private $type;
/**
* file name
*
* @var string
*/
private $file;
/**
* mail address
*
* @var string
*/
private $mail;
/**
* log message list
*
* @var array
*/
private $logArray = array();
/**
* Accessor
*
* @param string $type
*/
public function setType($type)
{
$this -> type = $type;
}
/**
* Accessor
*
* @return string
*/
public function getType()
{
return $this -> type;
}
/**
* Accessor
*
* @param string $file
*/
public function setFile($file)
{
$this -> file = $file;
}
/**
* Accessor
*
* @return string
*/
public function getFile()
{
return $this -> file;
}
/**
* Accessor
*
* @return array
*/
public function getLogArray()
{
return $this -> logArray;
}
/**
* Accessor
*
* @param array $array
*/
public function setLogArray( array $array )
{
$this -> logArray = $array;
}
/**
* Accessor
*
* @return string
*/
public function getMail()
{
return $this -> mail;
}
/**
* Accessor
*
* @param string $mail
*/
public function setMail($mail)
{
$this -> mail = $mail;
}
/**
* Constructor
*
* @param string $type
*/
public function __construct($type = 'udefined')
{
$this -> type = $type;
//get log file from xml config
$xml = simplexml_load_file('logConfig.xml');
$xpathResult = (array) $xml -> xpath("/logs/log[type='" . $type . "']/file");
$file = (string) $xpathResult[0];
if (trim($file) !='')
$this -> file = $file;
else
$this -> file = self::DEFAULT_LOG_FILE;
//get mail from xml config
$xpathResult = (array) $xml -> xpath("/logs/log[type='" . $type . "']/mail");
$mail = (string) $xpathResult[0];
if (trim($mail) !='')
$this -> mail = $mail;
}
/**
* Write a log message in xml file
*
* @param string $logMessage
*/
public function write($logMessage)
{
if (!file_exists($this -> file) )
{
//if not exists -> creat
$file = fopen($this -> file, 'w');
fputs($file, self::INITIALIZATION_TEXT);
fclose($file);
}
//xml building
$xml = simplexml_load_file($this -> file);
$xml->addChild('log');
$newNodeIndex = count($xml -> log) - 1;
$xml-> log[$newNodeIndex] ->addChild('type', $this -> type);
$xml-> log[$newNodeIndex] ->addChild('date', date('d-m-Y H:i:s'));
$xml-> log[$newNodeIndex] -> addChild('message', $logMessage);
//log array building
$this -> logArray[] = date('d-m-Y H:i:s') . " " . $this -> type . " : " . $logMessage;
//write xml in file
$handle = fopen($this -> file, 'w+');
fputs($handle, $xml->asXML());
fclose($handle);
}
/**
* Send a mail : see logConfig.xml
* only if mail is set in xml file
*
*/
public function sendMail()
{
if( isset($this -> mail))
{
$mailText = '';
foreach ($this -> logArray as $log)
$mailText .= $log . "\n";
if( trim($mailText)!='' )
mail($this -> mail, self::MAIL_SUBJECT, $mailText);
}
}
/**
* Desctructor
*
*/
public function __destruct()
{
$this -> sendMail();
}
}
?>
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Php et excel ???? [ par Adagyo ]
Salut @ tous,Je cherche un moyen de faire communiquer le contenu d'une base MySQL avec un tableau Excel.J'ai pensé à passer par du XML (je fait une re
Xml et Php [ par davdou ]
Bonjour,Je travaille actuellement sur un LMS Open-Source (Ganesha).Un module d'importation de formation dans la plate-forme doit parser un fichier Xml
xml dans un tableau php! SVG à la clé :) [ par jed35 ]
Bonjour je débute en php et évidemment j'ai un probleme. Je cherche à placer des données (qui se trouvent dans un fichier xml) dans un tableau php.voi
Ecrire dans un fichier .XML [ par ZogStriP ]
Bonjour,Je suis le webmasteur du site : www.rubikscubor.fr.st et j'aimerais faire un formulaire qui me permettrais d'inscrire une liste de SpeedCubist
xml(genere par excel) -> php [ par mic79 ]
bjour,je dispose d'un fichier xml généré sous excel et je souhaite récupérer les données du fichier excel dans ma page php.connaissez vous une bibliot
accents [ par Zan ]
bonjour,j'ai un petit souci avec les accents :dans une chaine, j'ai un balise xml et son contenu.j'ecris cette chaine dans un fichier.php me perd les
Téléchargement d'un Xml [ par Xilofeon ]
BonjourVoila j'ai trouvé des exemples de header sur le forum pour pouvoir demander à l'utilisateur d'enregistré directement le fichier
Lire fichier XML distant proteger par htaccess [ par jordangj ]
Salut à tousJe voudrais savoir comment je peut lire un fichier XML situer sur un serveur distant proteger pas un htaccess ?Une a
Question XML [ par orsam ]
Bonjour à tous,Bon je commence juste à "maitriser" le php, mais je cherche maintenant une petite doc ou un petit exemple, pour l'utilisation
Besoin d'aide pour generer un Flux RSS [ par RuSSe_91 ]
Salut tout le monde :) Je viens demander un coup de main pour générer un fichier RSS en XML. Mon site tourne sous mambo, e
|
Derniers Blogs
IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc SHAREPOINT BLOG SITE, PROBLèME D'ARCHIVESSHAREPOINT BLOG SITE, PROBLèME D'ARCHIVES par junarnoalg
Dernièrement, nous avons migré le site
myTIC
vers un nouveau serveur SharePoint 2010. Dans les contenus que nous vouloins récupérer, nous avions un certain nombre de blogs.
Nous avons utilisé les commandes Power...
Cliquez pour lire la suite de l'article par junarnoalg
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|