본문 바로가기

Language/PHP

[CodeIgniter] 로그

디버깅?

  • 버그를 제거하거나 억제하는 행위


로그?

  • 디버깅에서 중요하게 사용되는 방법
  • 애플리케이션을 만들다 보면 로직의 흐름 같은 경우를 체크해야하는 경우가 생긴다.


그 때 가장 흔히 하는 방법이

1. 구문 사이에 echo '숫자'; 해서 잘 찍히는지 확인

2. 변수값에 원하는 값이 잘들어가 있는지 확인 : var_dumb(변수);


이런식으로 하게 되면

  • 실제 애플리케이션의 시각적인 효과와 분리하기 힘들다
  • 실서버를 사용하고 있는 상태에서 에러메세지를 확인하고 싶을 때, 실제 사용자들에게도 보일 수 있는 위험이 있다.


 로깅(로그)


  • 사용자들에게 노출되지 않으면서
  • 애플리케이션에 대한 여러가지 정보를 수집할 수 있으며
  • 시각적인것과 디버깅을 분리해서 열람할 수 있기 때문에
  • 훨씬 쾌적한 환경에서 문제를 해결할 수 있다.



 로깅(로그) in CodeIgniter


  • 로깅 기능을 제공하고 있으며 사용하기 쉽다.
  • 로깅기능을 사용하기 위해서는 로그를 활성화 시켜야 한다.
    application>config>config.php : $config['log_threshold']=0;

0:로그기능을 끔 (default)

1: 에러메세지

2: 코드이그나이터가 동작의 흐름을 열람하고 싶을 때

3: 코드를 작성하는 과정에서 어떤 필요한 정보가 있을 때 3번에 info 정보로 지정하여 출력한다.

4: 모든메세지

(포함관계: 0 ⊂ 1 ⊂ 2 ⊂ 3 ⊂ 4 )


* 4로 바꾼 후에 웹페이지를 새로고침하게 되면, application>logs 날짜 이름으로 파일이 생성된다.

날짜가 바뀌면 또 그 날짜로 새로운 파일이 생긴다.


실시간으로 변경되는 로그를 보고 싶을 때는 tail 명령을 이용.


  • tail 로그파일명 : 로그 뒷부분부터 역순 출력, 최신데이터를 열람하기에 좋은 형태, 하지만 깔끔하지 않게 뿌려줌.
  • tail -f 로그파일명 : 홈페이지를 reroad 할때마다, 실시간으로 로그를 열람할 수 있음
  • tail -f 로그파일명 | grep 찾고싶은단어 : 찾고싶은단어를 포함한 로그 메세지만을 추출해서 볼 수 있다.


코드이그나이터의 로그시스템을 이용해서 메시지 띄워보기

  • log_message(로그타입, 로그메세지);
  • 전역함수, 로그 메세지를 출력할 수 있다.
  • 애플리케이션의 흐름을 로깅으로 볼 수 있다.

ex)


존재하지 않는 이상한 값이 변수에 들어온다면 변수에는 값이 없을 것이다.

if(empty($topic)){

log_message('error', 'topic의 값이 없습니다');

}



CI에서 에러 핸들링

ex)

show_error('topic의 값이 없습니다');

이메세지를 띄우면 여기서 로직이 멈춰진다.

사용자들에게 좀더 정제된 에러메세지를 전달할 수 있음.

'Language > PHP' 카테고리의 다른 글

입출력 그리고 폼과 HTTP  (0) 2017.12.15
PHP 시작하기 (기본명령문, 변수)  (0) 2017.12.14
[CodeIgniter] 설정  (0) 2017.08.19
[CodeIgniter] Helper  (0) 2017.08.18
[CodeIgniter] URI Routing  (0) 2017.08.17