에러 핸들링Error Handling
CodeIgniter 는 아래 함수들을 이용하여 여러분 프로그램에서 에러에 대한 리포트를 생성하도록 지원합니다.게다가,에러 로깅(error logging )클래스도 제공합니다. 에러로깅 클래스를 이용하면 에러를 텍스트 파일로 저장할 수 있습니다.
Note: CodeIgniter의 기본설정은 모든 PHP 에러를 표시하는 것입니다. 그런데 님하의 프로그램 개발이 완료되었을때 이런 기본 설정을 변경하고 싶을 수 있습니다. 메인 index.php 의 맨윗쪽에 error_reporting() 함수가 있습니다. error reporting 을 disable 하는것이 에러 로그파일을 기록하는것 까지 disable 하지는 않습니다.
대부분 CodeIgniter의 시스템과는달리 ,에러 함수는 절차적 인터페이스를 가지며 프로그램 전반에 걸쳐 글로벌 하게 사용할 수 있다.
이런 접근방법은 클래스나 함수의 스코프에 상관없이 에러 메시지를 생성하게 해줍니다.
다음 함수는 에러를 생성하도록 해줍니다.:
show_error('message' [, int $status_code= 500 ] )
이 함수는 아래 템플릿을 이용하여 에러메세지를 표시합니다.:
application/errors/error_general.php
옵션인 $status_code 파라미터는 에러와 함께 어떤 HTTP 상태 코드가 보내져야 할지 결정합니다.
show_404('page')
이 함수는 아래 템플릿을 이용하여 404 에러메세지를 표시합니다.
application/errors/error_404.php
이 함수는 발견되지않은(not found) 페이지의 경로를 문자열로 전달받을것을 가정합니다.
주의 : CodeIgniter 는 컨트롤러를 발견할 수 없으면 자동적으로 404 에러메세지를 표시합니다.
log_message('level', 'message')
이함수는 로그파일에 에러메세지를 쓸수 있도록 합니다. 먼저 3개의 에러타입(debug, error, info)중 하나의 타입을 첫번째 파라미터로 전달해야합니다.메세지는 두번째 파라미터로 전달합니다.
예제:
if ($some_var == "")
{
log_message('error', 'Some variable did not contain a value.');
}
else
{
log_message('debug', 'Some variable was correctly set');
}
log_message('info', 'The purpose of some variable is to provide some value.');
3가지 메세지 타입이 있습니다:
- Error 메세지 : PHP 에러나 사용자 에러등 진짜 에러 메시지.
- Debug 메세지: 디버그를 도와주는 메세지.예를 들어, 클래스가 초기화되면 님하는 debugging 정보로 파일에 기록할 수 있습니다.
- Informational 메세지 : 이 메시지는 가장 우선순위가 낮은 메세지 . 단순히 어떤 프로세스에 대한 메세지를 제공합니다. CodeIgniter 는 Info 메세지를 작성하지않습니다만, 님하가 원하시는 메세지를 스스로 기록하실수있습니다.
Note: 로그파일을 기록하려면 "logs" 폴더에 쓰기권한이 있어야합니다.또한 , 쓰레스홀드("threshold)를 먼저 세팅해야합니다.예를 들어 , 에러메세지만 기록하고 싶을수도 있겠죠 ?. 제로로 세팅하시면 로깅은 비활성화(disabled) 될것입니다.