Subversion Repositories Applications.framework

Rev

Rev 130 | Rev 153 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 130 Rev 138
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
	/**