/** * Loggerを返却 * * @param string $name Loggerのクラス名 * @return Object Loggerのインスタンス * @access public * @since 3.0.0 */ function &getLog($name = DEFAULT_LOGGER) { // // Loggerのクラス名が不正だったらデフォルトのLoggerを切り替え // if (!preg_match("/^[0-9a-zA-Z_]+\$/", $name)) { $name = DEFAULT_LOGGER; } // // 既にセットされているLoggerだったらそれをそのまま返却 // $logFactory =& LogFactory::getInstance(); if (isset($logFactory->_list[$name]) && is_object($logFactory->_list[$name])) { return $logFactory->_list[$name]; } // // ファイルが存在していなければエラーを表示 // $className = "Logger_" . ucfirst($name); $filename = LOGGER_DIR . "/{$className}.class.php"; if (!@(include_once $filename) or !class_exists($className)) { $error = "Loggerのファイル名が不正です({$filename})"; trigger_error($error, E_USER_ERROR); exit; } // // オブジェクトの生成に失敗していたらエラー // $logger =& new $className(); if (!is_object($logger)) { return false; } $logFactory->_list[$name] =& $logger; return $logger; }