. * * Mécanisme de log spécifique. C'est un helper plutôt qu'une extension de CI_Log * parce que cela permet de séparer les logs applicatifs des logs systèmes. * * J'aurais préféré un mécanisme de log un peu plus sophistiqué style Log4J ou on peut spécifier * les loggers mais CodeIgniter est une Framework minimaliste (cela a aussi des avantages, * même si cela a quelques inconvénients). */ if (!defined('BASEPATH')) exit ('No direct script access allowed'); if (!function_exists('gvv_log')) { /** * Log avec prefix (facilite le filtrage) * */ function gvv_log($level, $msg, $php_error = FALSE) { log_message($level, "GVV: " . $msg, $php_error); } } if (!function_exists('gvv_info')) { /** * Log avec prefix (facilite le filtrage) * Niveau info à utiliser pour l'application */ function gvv_info($msg, $php_error = FALSE) { gvv_log('info', $msg, $php_error); } } if (!function_exists('gvv_error')) { /** * Log avec prefix (facilite le filtrage) * */ function gvv_error($msg, $php_error = FALSE) { gvv_log('error', $msg, $php_error); } } if (!function_exists('gvv_debug')) { /** * Log avec prefix (facilite le filtrage) * Niveau debug à utiliser pour les tests. * */ function gvv_debug($msg, $php_error = FALSE) { gvv_log('debug', $msg, $php_error); } } if (!function_exists('current_logfile')) { /** * Return the file name of the current log file * */ function current_logfile() { $logname = "log-" . date("Y-m-d") . ".php"; $logpath = getcwd() . "/../application/logs/" . $logname; return $logpath; } } if (!function_exists('occurences')) { /** * Retourne la liste des occurences d'une chaine de caractère dans le fichier de log */ function occurences($pattern) { $getText = file_get_contents(current_logfile(), true); return substr_count($getText , $pattern); } }