디버깅?
- 버그를 제거하거나 억제하는 행위
로그?
- 디버깅에서 중요하게 사용되는 방법
- 애플리케이션을 만들다 보면 로직의 흐름 같은 경우를 체크해야하는 경우가 생긴다.
그 때 가장 흔히 하는 방법이
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의 값이 없습니다');
}
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 |