Subversion Repositories Applications.framework

Rev

Rev 122 | Rev 129 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 122 Rev 123
Line 68... Line 68...
68
        }
68
		}
69
        self::$log = new Log();
69
		self::$log = new Log();
70
        return self::$log;
70
		return self::$log;
71
    }
71
	}
Line -... Line 72...
-
 
72
 
-
 
73
	/**
-
 
74
	 * Ajoute une entrée au log spécifié par le paramètre $nomFichier
-
 
75
	 * @param string $nomFichier le nom du fichier dans lequel écrire
72
 
76
	 */
73
    public static function ajouterEntree($nomFichier,$entree,$mode='a+') {
77
	public static function ajouterEntree($nomFichier,$entree,$mode='a+') {
74
        if(self::$droitLogger) {
78
		if(self::$droitLogger) {
Line 75... Line 79...
75
            $date = "\n"."\n".date('d m Y H:i')."\n" ;
79
			$date = "\n"."\n".date('d m Y H:i')."\n" ;
76
 
80
 
77
            // si le fichier est déjà dans le tableau et qu'on peut y écrire
81
			// si le fichier est déjà dans le tableau et qu'on peut y écrire
78
            if(in_array($nomFichier,self::$fichiersLog)) {
82
			if(in_array($nomFichier,self::$fichiersLog)) {
79
                if(is_writable(self::$fichiersLog[$nomFichier])) {
83
				if(is_writable(self::$cheminLogs.$nomFichier)) {
80
            	   fwrite(self::$fichiersLog[$nomFichier],$date.$entree);
84
				   fwrite(self::$fichiersLog[$nomFichier],$date.$entree);
81
                } else {
85
				} else {
82
                	self::desactiverEcriture();
86
					self::desactiverEcriture($nomFichier);
83
                }
87
				}
-
 
88
			} else {
-
 
89
				$fp = fopen(self::$cheminLogs.$nomFichier,$mode);
84
            } else {
90
				if($fp) {
85
                if($fp = fopen(self::$cheminLogs.$nomFichier,'a+') && is_writable($fp)) {
91
					if(is_writable(self::$cheminLogs.$nomFichier)) {
86
                	self::$fichiersLog[$nomFichier] = $fp;
92
					   self::$fichiersLog[$nomFichier] = $fp;
87
                    fwrite(self::$fichiersLog[$nomFichier],$date.$entree);
93
						fwrite(self::$fichiersLog[$nomFichier],$date.$entree);
-
 
94
					} else {
-
 
95
						self::desactiverEcriture($nomFichier);
-
 
96
					}
88
                } else {
97
				} else {
89
                    self::desactiverEcriture();
98
					self::desactiverEcriture($nomFichier);
90
                }
99
				}
91
            }
100
			}
Line -... Line 101...
-
 
101
		}
-
 
102
	}
-
 
103
 
-
 
104
	/**
92
        }
105
	 * Vide un fichier log indiqué
93
    }
106
	 * @param string $nomFichier le nom du fichier à vider
94
 
107
	 */
95
    public static function viderLog($nomFichier) {
108
	public static function viderLog($nomFichier) {
96
        if(self::verifierPresenceFichier($nomFichier)) {
109
		if(self::verifierPresenceFichier($nomFichier)) {
Line -... Line 110...
-
 
110
			ajouterEntree($nomFichier,'','w');
-
 
111
		}
-
 
112
	}
-
 
113
 
-
 
114
	/**
-
 
115
	 * Vérifie la présence d'un fichier dans le tableau (et bientot plein
97
            ajouterEntree($nomFichier,'','w');
116
	 * d'autres choses).
98
        }
117
	 * @param string $nomFichier le nom du fichier dont on doit vérifier la présence
99
    }
118
	 * @return boolean vrai si le fichier est dans le tableau, faux sinon
100
 
119
	 */
101
    public static function verifierPresenceFichier($nomFichier) {
120
	public static function verifierPresenceFichier($nomFichier) {
102
        if(in_array($nomFichier,self::$fichiersLog)) {
121
		if(in_array($nomFichier,self::$fichiersLog)) {
Line -... Line 122...
-
 
122
			return true;
-
 
123
		}
-
 
124
		return false;
-
 
125
	}
103
            return true;
126
 
104
        }
127
	/**
105
        return false;
128
	 * Désactive l'écriture du log et envoie un message au gestionnaire d'erreurs
106
    }
129
	 * @param string $nomFichier le nom du fichier qui a causé l'erreur
107
 
130
	 */
108
    private static function desactiverEcriture() {
131
	private static function desactiverEcriture($nomFichier) {
Line -... Line 132...
-
 
132
		self::$droitLogger = false;
-
 
133
		$message = 'Ecriture impossible dans le fichier '.$nomFichier.', Assurez-vous des droits du dossier de logs et du fichier';
-
 
134
		$e = new ErrorException($message,0,E_USER_WARNING,__FILE__,__LINE__);
109
        self::$droitLogger = false;
135
		GestionnaireException::gererException($e);
110
        $message = 'Impossible d\'écrire dans le fichier de log spécifié, Vérifiez les droits du dossier de logs et du fichier';
136
	}
111
        $e = new ErrorException($message,0,E_USER_WARNING,__FILE__,__LINE__);
137
 
112
        GestionnaireException::gererException($e);
138
	/**
113
    }
139
	 * destructeur de classe, ferme les descripteurs ouverts