TIP게시판

제목 [중복 죄송;;;]로그 기록을 좀 깔끔하게 진행해보자!
글쓴이 방문넷 작성시각 2015/04/10 05:31:37
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 15108   RSS
----------------------------------------------------------------
http://codeigniter-kr.org/lecture/view/517/page/1/

CI세상님의 팁을 이용하시면 좀더 기똥찬 로그관리가 가능하십니다
----------------------------------------------------------------

가끔 Low 한 레벨 로그만을 찍고싶은데 로그 설정에서 info 메세지만 띄울려고할때 이상하게 

DEBUG, ERROR, INFOMATION 까지 뜹니다. 정작 원하는건 원하는 위치에 자신이 남겨둔 로그만 보고싶은데

우르르르 뜨는 로그들 때문에 좀 스트레스 받으신 분들을 위해 따로 확장하는 팁을 살짝쿵 내놓습니다

CI 3.0 기준에서 작성한것입니다.


Core 폴더에 MY_Log.php 를 만들어주신후에

system/core/Log.php 내용을 위에 만든 파일에 붙여넣기를 합니다 그리고 아래와 같이 코드를 첨가해줍니다.
 
//로그레벨이 4까지있는데 5까지 추가해줍니다.
protected $_levels = array('ERROR' => 1, 'DEBUG' => 2, 'INFO' => 3, 'ALL' => 4, 'MYLOG' => 5);
 
//로그 레벨이 5일경우... 나머지 로그는 표시해주지 말자.
if( $this->_levels[$level] < 5 ) {
	return FALSE;
}
		
//약 169 라인쯤에 아래의 내용 위에 위 코드를 입력해줍니다.
if (( ! isset($this->_levels[$level]) OR ($this->_levels[$level] > $this->_threshold)) && ! isset($this->_threshold_array[$this->_levels[$level]]))
{
	return FALSE;
}


자 이렇게할경우 4로 지정했을시에 모든 메세지가 뜨고요 5를 적용했을때 MYLOG만 뜹니다.

즉 로그 남기고싶은대에 log_message("MYLOG",'로그내용'); 만 입력하면 깔끔하게 자신의 로그만 뜹니다...

실서비스가 들어가는곳에 로그기록남기는건 성능저하가있지만 때때로 실서비스에서 혹시나 문제생길수있는 부분에

부득이하게 로그를 남겨야된다라면 위와 같이 코드로 살짝쿵 적용해보는것도 나쁘지않습니다.
 다음글 자신만의 프레임워크 만들기 (4)
 이전글 ci 개발 앱? Bonfire (1)

댓글

한대승(불의회상) / 2015/04/10 09:39:54 / 추천 0
보통 ERROR 로 처리 했는데 굳 아이디어네요.
로그로 변수를 출력 할 때 array 나 object면 json_encode 를 사용하는 센스....
$array = array('a' => 1, 'b' =>);
log_message("MYLOG",'로그내용 - ' . json_encode($array));
변종원(웅파) / 2015/04/10 10:39:09 / 추천 0
good입니다. ^^
방문넷 / 2015/04/10 12:56:52 / 추천 0
@불의회상 // 헉;;; 깨알팁 감사합니다

@웅파 // 워낙에 로그를 좀 현명하게 볼줄 몰라서 이렇게라도 작업을 진행 해보았습니다 ㅎㅎ;;

사실 리눅스에서 tail -f 로그파일 | grep INFO

만 해도 INFO 만 보이는데.

로그 용량이 무식하게 늘어나서요...

용량도 조금이나마 줄여보고자 저의 발악이었습니다 ㅎㅎㅎ;; 

실서비스에서는 로그남기니 성능저하가 이만저만이 아니네요.

실서비스에는 로그를 웬만하면 틀지 말아야하지 말입니다.
변종원(웅파) / 2015/04/10 14:41:43 / 추천 0
방문넷/ 실서버는 로그를 막아야 하는게 정상이지만 간혹 필요에 의해... ㅎㅎ

윈도우에 apm 설치해서 돌릴때 로그가 어느정도 커지면 사이트 접속 안됩니다. ㅎㅎㅎㅎㅎ