Esempio n. 1
0
 /**
  * Retourne le chemin vers un fichier de log déterminé à partir des paramètres $type, $name et $archive.
  * (ex: /Applications/MAMP/www/monsite/logs/erreurs/201202/201202_erreur_connexion.log)
  * Elle crée le chemin s'il n'existe pas.
  *
  * @param string $type Dossier dans lequel sera enregistré le fichier de log
  * @param string $name Nom du fichier de log
  * @param string $archive Archivage : LOG_VOID, LOG_MONTH ou LOG_YEAR
  * @return string Chemin vers le fichier de log
  **/
 private function path($type, $name, $archive = self::LOG_YEAR)
 {
     # On vérifie que le logger est prêt (et donc que le dossier de dépôt existe)
     if (!$this->ready) {
         trigger_error("Logger is not ready", E_USER_WARNING);
         return false;
     }
     # Contrôle des arguments
     if (!isset($type) || empty($name)) {
         trigger_error("Paramètres incorrects", E_USER_WARNING);
         return false;
     }
     $makefile = new filesystem_makefile();
     # Création dossier du type (ex: /Applications/MAMP/www/monsite/logs/erreurs/)
     if (empty($type)) {
         $type_path = $this->pathlog . '/';
     } else {
         $type_path = $this->pathlog . '/' . $type . '/';
         if (!is_dir($type_path)) {
             $makefile->mkdir(array($type_path));
         }
     }
     $date = new date_dateformat();
     # Création du dossier archive (ex: /Applications/MAMP/www/monsite/logs/erreurs/201202/)
     if ($archive == self::LOG_VOID) {
         $logfile = $type_path . $name . '.log';
     } elseif ($archive == self::LOG_MONTH) {
         $current_year = $date->dateDefine('Y');
         $current_month = $date->dateDefine('m');
         $type_path_month = $type_path . $current_year;
         if (!is_dir($type_path_month)) {
             $makefile->mkdir(array($type_path_month));
         }
         $logfile = $type_path_month . '/' . $current_year . $current_month . '_' . $name . '.log';
     } elseif ($archive == self::LOG_YEAR) {
         $current_year = $date->dateDefine('Y');
         $type_path_year = $type_path . $current_year;
         if (!is_dir($type_path_year)) {
             $makefile->mkdir(array($type_path_year));
         }
         $logfile = $type_path_year . '/' . $current_year . '_' . $name . '.log';
     } else {
         trigger_error("LOG Error '{$archive}'", E_USER_WARNING);
         return false;
     }
     return $logfile;
 }