CodeIgniter User Guide Version 1.7.2


에러 핸들링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가지 메세지 타입이 있습니다:

  1. Error 메세지 : PHP 에러나 사용자 에러등 진짜 에러 메시지.
  2. Debug 메세지: 디버그를 도와주는 메세지.예를 들어, 클래스가 초기화되면 님하는 debugging 정보로 파일에 기록할 수 있습니다.
  3. Informational 메세지 : 이 메시지는 가장 우선순위가 낮은 메세지 . 단순히 어떤 프로세스에 대한 메세지를 제공합니다. CodeIgniter 는 Info 메세지를 작성하지않습니다만, 님하가 원하시는 메세지를 스스로 기록하실수있습니다.

Note: 로그파일을 기록하려면 "logs" 폴더에 쓰기권한이 있어야합니다.또한 , 쓰레스홀드("threshold)를 먼저 세팅해야합니다.예를 들어 , 에러메세지만 기록하고 싶을수도 있겠죠 ?. 제로로 세팅하시면 로깅은 비활성화(disabled) 될것입니다.