| Line 64... |
Line 64... |
| 64 |
self::$cheminLogs = Config::get('chemin_logs');
|
64 |
self::$cheminLogs = Config::get('chemin_logs');
|
| 65 |
self::$timeZone = Config::get('fw_timezone');
|
65 |
self::$timeZone = Config::get('fw_timezone');
|
| 66 |
self::$tailleMax = Config::get('fw_taille_max_logs');
|
66 |
self::$tailleMax = Config::get('fw_taille_max_logs');
|
| Line 67... |
Line 67... |
| 67 |
|
67 |
|
| 68 |
// gestion de la timezone pour éviter des erreurs
|
68 |
// gestion de la timezone pour éviter des erreurs
|
| 69 |
if(function_exists("date_default_timezone_set") and function_exists("date_default_timezone_get")) {
|
69 |
if (function_exists('date_default_timezone_set') && function_exists('date_default_timezone_get')) {
|
| 70 |
date_default_timezone_set(self::$timeZone);
|
70 |
date_default_timezone_set(self::$timeZone);
|
| Line 71... |
Line 71... |
| 71 |
}
|
71 |
}
|
| 72 |
|
72 |
|
| 73 |
if(!is_dir(self::$cheminLogs) || !is_writable(self::$cheminLogs)) {
|
73 |
if (!is_dir(self::$cheminLogs) || !is_writable(self::$cheminLogs)) {
|
| 74 |
self::desactiverEcriture();
|
74 |
self::desactiverEcriture();
|
| Line 75... |
Line 75... |
| 75 |
}
|
75 |
}
|
| Line 96... |
Line 96... |
| 96 |
if(self::$droitLogger) {
|
96 |
if(self::$droitLogger) {
|
| 97 |
$date = "\n"."\n".date('d m Y H:i')."\n" ;
|
97 |
$date = "\n"."\n".date('d m Y H:i')."\n" ;
|
| Line 98... |
Line 98... |
| 98 |
|
98 |
|
| 99 |
// si le fichier est déjà dans le tableau et qu'on peut y écrire
|
99 |
// si le fichier est déjà dans le tableau et qu'on peut y écrire
|
| 100 |
if(self::verifierOuvrirFichier($nomFichier,$mode)) {
|
100 |
if(self::verifierOuvrirFichier($nomFichier,$mode)) {
|
| 101 |
// on y écrit le message de log
|
101 |
// on y écrit le message de log
|
| 102 |
fwrite(self::$fichiersLog[$nomFichier],$date.$entree);
|
102 |
fwrite(self::$fichiersLog[$nomFichier],$date.$entree);
|
| 103 |
// on vérifie si le fichier ne dépasse pas la taille maximale
|
103 |
// on vérifie si le fichier ne dépasse pas la taille maximale
|
| 104 |
self::verifierTailleFichierOuArchiver($nomFichier);
|
104 |
self::verifierTailleFichierOuArchiver($nomFichier);
|
| 105 |
} else {
|
105 |
} else {
|
| 106 |
// sinon on interdit l'écriture
|
106 |
// sinon on interdit l'écriture
|
| 107 |
self::desactiverEcriture($nomFichier);
|
107 |
self::desactiverEcriture($nomFichier);
|
| 108 |
}
|
108 |
}
|
| Line 112... |
Line 112... |
| 112 |
/**
|
112 |
/**
|
| 113 |
* Vide un fichier log indiqué
|
113 |
* Vide un fichier log indiqué
|
| 114 |
* @param string $nomFichier le nom du fichier à vider
|
114 |
* @param string $nomFichier le nom du fichier à vider
|
| 115 |
*/
|
115 |
*/
|
| 116 |
public static function viderLog($nomFichier) {
|
116 |
public static function viderLog($nomFichier) {
|
| 117 |
ajouterEntree($nomFichier,'','w');
|
117 |
ajouterEntree($nomFichier, '', 'w');
|
| 118 |
}
|
118 |
}
|
| Line 119... |
Line 119... |
| 119 |
|
119 |
|
| 120 |
/**
|
120 |
/**
|
| 121 |
* Vérifie la présence d'un fichier dans le tableau, ses droits d'écriture,
|
121 |
* Vérifie la présence d'un fichier dans le tableau, ses droits d'écriture,
|
| 122 |
* l'ouvre si nécessaire
|
122 |
* l'ouvre si nécessaire
|
| 123 |
* @param string $nomFichier le nom du fichier dont on doit vérifier la présence
|
123 |
* @param string $nomFichier le nom du fichier dont on doit vérifier la présence
|
| 124 |
* @return boolean true si le fichier est ouvert ou maintenant accessible, false sinon
|
124 |
* @return boolean true si le fichier est ouvert ou maintenant accessible, false sinon
|
| 125 |
*/
|
125 |
*/
|
| 126 |
public static function verifierOuvrirFichier($nomFichier,$mode) {
|
126 |
public static function verifierOuvrirFichier($nomFichier,$mode) {
|
| 127 |
// le fichier est il déjà ouvert ?
|
127 |
// le fichier est il déjà ouvert ?
|
| 128 |
if(in_array($nomFichier,self::$fichiersLog)) {
|
128 |
if (in_array($nomFichier, self::$fichiersLog)) {
|
| 129 |
// si oui peut on y écrire ?
|
129 |
// si oui peut on y écrire ?
|
| 130 |
if(is_writable(self::$cheminLogs.$nomFichier.self::$ext)) {
|
130 |
if (is_writable(self::$cheminLogs.$nomFichier.self::$ext)) {
|
| 131 |
// si oui on renvoie le descripteur
|
131 |
// si oui on renvoie le descripteur
|
| 132 |
return true;
|
132 |
return true;
|
| 133 |
}
|
133 |
}
|
| 134 |
return false;
|
134 |
return false;
|
| 135 |
} else {
|
135 |
} else {
|
| 136 |
// sinon on l'ouvre
|
136 |
// sinon on l'ouvre
|
| 137 |
$fp = @fopen(self::$cheminLogs.$nomFichier.self::$ext,$mode);
|
137 |
$fp = @fopen(self::$cheminLogs.$nomFichier.self::$ext,$mode);
|
| 138 |
// si l'ouverture a réussi et si le fichier a les droits d'écriture
|
138 |
// si l'ouverture a réussi et si le fichier a les droits d'écriture
|
| 139 |
if($fp && is_writable(self::$cheminLogs.$nomFichier.self::$ext)) {
|
139 |
if ($fp && is_writable(self::$cheminLogs.$nomFichier.self::$ext)) {
|
| 140 |
// si oui on renvoie le descripteur qu'on ajoute au tableau
|
140 |
// si oui on renvoie le descripteur qu'on ajoute au tableau
|
| 141 |
self::$fichiersLog[$nomFichier] = $fp;
|
141 |
self::$fichiersLog[$nomFichier] = $fp;
|
| 142 |
return true;
|
142 |
return true;
|
| 143 |
}
|
143 |
}
|
| Line 161... |
Line 161... |
| 161 |
* Désactive l'écriture du log et envoie un message au gestionnaire d'erreurs
|
161 |
* Désactive l'écriture du log et envoie un message au gestionnaire d'erreurs
|
| 162 |
* @param string $nomFichier le nom du fichier qui a causé l'erreur
|
162 |
* @param string $nomFichier le nom du fichier qui a causé l'erreur
|
| 163 |
*/
|
163 |
*/
|
| 164 |
private static function desactiverEcriture($nomFichier = '') {
|
164 |
private static function desactiverEcriture($nomFichier = '') {
|
| 165 |
self::$droitLogger = false;
|
165 |
self::$droitLogger = false;
|
| 166 |
if($nomFichier != '') {
|
166 |
if ($nomFichier != '') {
|
| 167 |
$fichierDossier = 'fichier '.$nomFichier ;
|
167 |
$fichierDossier = 'fichier '.$nomFichier ;
|
| 168 |
} else {
|
168 |
} else {
|
| 169 |
$fichierDossier = 'dossier des logs';
|
169 |
$fichierDossier = 'dossier des logs';
|
| 170 |
}
|
170 |
}
|
| 171 |
$message = 'Ecriture impossible dans le '.$fichierDossier.', Assurez-vous des droits du dossier et des fichiers';
|
171 |
$message = 'Écriture impossible dans le '.$fichierDossier.', Assurez-vous des droits du dossier et des fichiers';
|
| 172 |
$e = new ErrorException($message,0,E_USER_WARNING,__FILE__,__LINE__);
|
172 |
$e = new ErrorException($message, 0, E_USER_WARNING, __FILE__, __LINE__);
|
| 173 |
GestionnaireException::gererException($e);
|
173 |
GestionnaireException::gererException($e);
|
| 174 |
}
|
174 |
}
|
| Line 175... |
Line 175... |
| 175 |
|
175 |
|
| 176 |
/**
|
176 |
/**
|