m_sDir = $dir; $this->m_sFileName = $fileName; $this->m_LOG_LEVEL = $logLev; $this->m_WRITE_MODE = $writeMode; $this->m_sFullLogPath = ''; } private function _check_and_create_new_log_file() { $bCreate = false; $curLogPath = ''; if ($this->m_WRITE_MODE === WRITE_MODE_PERDAY) { $curLogPath = sprintf("%s\\%s_%s.log", $this->m_sDir, $this->m_sFileName, date("Ymd")); } else { //Èç¹ûΪ¿Õ£¬¾Í´´½¨ÈÕÖ¾ $curLogPath = sprintf("%s\\%s\\%s_%s.log", $this->m_sDir, date("Ymd"), $this->m_sFileName, date("H")); } //Èç¹ûΪ¿Õ£¬¾Í´´½¨ÈÕÖ¾ if ($this->m_sFullLogPath === '') { $bCreate = true; } else { //ÈÕÆÚ¸Ä±äÁË£¬ÐèÒª´´½¨ÐÂÈÕÖ¾ if ($curLogPath != $this->m_sFullLogPath) { $bCreate = true; } } if ($bCreate) { //²»´æÔÚÎļþ¼Ð£¬´´½¨ file_exists($dir = dirname($curLogPath)) || mkdir($dir, 0777, true); $this->m_sFullLogPath = $curLogPath; } } private function _log($info, $level) { global $LOG_LEVEL_STR_ARRAY; //µÈ¼¶µÍÓÚµ±Ç°ÉèÖõÄÈÕÖ¾µÈ¼¶£¬²»Ð´ÈÕÖ¾ if ($level < $this->m_LOG_LEVEL) { return; } //¼ì²éÊÇ·ñÐèÒªÖØÐ´´½¨ÈÕÖ¾Îļþ£¬Èç¹ûÐèÒª¾Í´´½¨ $this->_check_and_create_new_log_file(); //дÈÕÖ¾ if (empty($this->m_sAffixStr)) { $info = sprintf("%s\t%s\t%s\r\n", date("Y-m-dTH:i:s"), $LOG_LEVEL_STR_ARRAY[$level], $info); } else { $info = sprintf("%s\t%s\t%s\t%s\r\n", date("Y-m-dTH:i:s"), $LOG_LEVEL_STR_ARRAY[$level], $this->m_sAffixStr, $info); } file_put_contents($this->m_sFullLogPath, $info, FILE_APPEND); } //ÉèÖø½¼Ó×Ö·û´® public function SetAffixStr($affix) { $this->m_sAffixStr = $affix; } //»ñÈ¡¸½¼Ó×Ö·û´® public function GetAffixStr() { return $this->m_sAffixStr; } public function Debug($info) { $this->_log($info, LOG_LEVEL_DEBUG); } public function Info($info) { $this->_log($info, LOG_LEVEL_INFO); } public function Warn($info) { $this->_log($info, LOG_LEVEL_WARN); } public function Error($info) { $this->_log($info, LOG_LEVEL_ERROR); } public function Fatal($info) { $this->_log($info, LOG_LEVEL_FATAL); } } ?>