강좌게시판

제목 [게임서버] API > INFO 로깅분석
글쓴이 ci세상 작성시각 2015/02/23 18:49:49
댓글 : 1 추천 : 0 스크랩 : 0 조회수 : 21213   RSS
CI는 크게 4가지 타입의 로깅을 가능하게 해주고 있는데요 (error, debug, info, all)

게임운영시 항시 보관해야할 로그는 info 로그입니다.
서버<->클라간의 통신 데이터는 보관을 하고 있어야지 추후 운영대응이 가능하기 때문입니다.
CI최신버전에도 아쉽게도 버그를 선택적으로 출력할 수 있는것이 아직까지 안된것 같더라구요
그래서 코어파일 1개를 부득이하게 수정하게 됩니다.

1. info 로그만 출력하기 위하여 Log 파일 복사
- 첨부파일을 /application/libraries/Log.php에 위치합니다.
- 참고문서 : http://minarae7.tistory.com/?page=1

2. info 로그만 출력하도록 설정
/application/config/config.php > 183줄
$config['log_threshold'] = array(3);

3. 컨트롤러에서 info 로그 사용
- 전체 컨트롤러에 해당 부분을 적용하려면 코어를 많이 건드려야 해서 컨트롤러 1개에만 추가
- API_PATH, IN DATA, OUT DATA를 info로그로 남기는 부분입니다.
 
lang->load("battle","korean");
		$this->strings = $this->lang->language;

		log_message('info', "API PATH : ".$_SERVER["REQUEST_URI"]);
    }

	/**
	* @Author : CI
	* @Date : 20150218
	* @Version : v1.0.0
	* @param : idx (배틀고유값)
	* @Method 설명 : 배틀초기정보
	*/
	public function Info()
	{
		// IN DATA
		// 클라이언트로부터 전달된 파라미터를 받습니다.
		$data = '{"idx":"100"}';
		log_message('info', "IN DATA : ".$data);

		$data = json_decode($data, true);

		// PROCESS
		// 구현로직을 추가합니다.
		log_message('error', 'error log!!');
		log_message('debug', 'debug log!!');
		
		// OUT DATA
		// 클라이언트로 데이터를 규격대로 전달해 줍니다.
		// 공백은 항시 NULL 처리를 필요로 합니다.
		$json["battle_title"] = $this->strings["battle_title"];
		$json["battle_max"] = $this->strings["battle_max"];
		$json["battle_skill"] = $this->strings["battle_skill"];
		$json["result"] = "Y";
		$json["message"] = "";

		$result = json_encode( $json );
		log_message('info', "OUT DATA : ".$result);

		echo $result;
	}



4. 리눅스 콘솔로 tail -f log-년-월-일.php 파일 모니터링


 
첨부파일 Log.zip (1.3 KB)
 다음글 [게임서버] API주소 라우팅 (1)
 이전글 [게임서버] API 명세서 정의 및 컨트롤러 코딩 (3)

댓글

한대승(불의회상) / 2015/02/24 12:45:47 / 추천 0
좋은 정보 감사 합니다. ^^