PHP CodeIgniter에서 오류 로깅을 원합니다. 오류 로깅을 활성화하려면 어떻게합니까?
질문이 몇 개 있습니다:
- 오류를 기록하는 모든 단계는 무엇입니까?
- 오류 로그 파일은 어떻게 생성됩니까?
- 오류 메시지를 로그 파일에 푸시하는 방법 (오류가 발생할 때마다)?
- 오류를 이메일 주소로 어떻게 이메일로 보내나요?
답변
CodeIgniter에는 몇 가지 오류 로깅 기능이 내장되어 있습니다.
- / application / logs 폴더를 쓰기 가능하게 만드십시오.
- 에서 /application/config/config.php 세트
$config['log_threshold'] = 1;
당신이 당신의 로그에서 원하는 얼마나 많은 세부 사항에 따라, 높은 숫자를 사용하거나 - 사용하다
log_message('error', 'Some variable did not contain a value.');
- 이메일을 보내려면 핵심 CI_Exceptions 클래스 메소드를 확장해야합니다
log_exceptions()
. 당신이 자신을하거나 사용할 수 있습니다 이 . 여기 에서 코어 확장에 대한 자세한 정보
참조 http://www.codeigniter.com/user_guide/general/errors.html를
답변
서버의 오류 로그에 한 줄만 넣으려면 PHP의 error_log () 함수를 사용하십시오. 그러나이 방법은 이메일을 보내지 않습니다.
먼저 오류를 트리거하려면 :
trigger_error("Error message here", E_USER_ERROR);
기본적으로 이것은 서버의 오류 로그 파일에 저장됩니다. Apache에 대한 ErrorLog 지시문 을 참조하십시오 . 고유 한 로그 파일을 설정하려면 :
ini_set('error_log', 'path/to/log/file');
선택한 로그 파일은 이미 존재해야하며 서버 프로세스에서 쓸 수 있어야합니다. 파일을 쓰기 가능하게 만드는 가장 간단한 방법은 서버 사용자를 파일의 소유자로 만드는 것입니다. (서버 사용자는 OS 배포에 따라 nobody, _www, apache 또는 다른 것일 수 있습니다.)
오류를 이메일로 보내려면 사용자 지정 오류 처리기를 설정해야합니다.
function mail_error($errno, $errstr, $errfile, $errline) {
$message = "[Error $errno] $errstr - Error on line $errline in file $errfile";
error_log($message); // writes the error to the log file
mail('you@yourdomain.com', 'I have an error', $message);
}
set_error_handler('mail_error', E_ALL^E_NOTICE);
자세한 정보 는 관련 PHP 문서 를 참조하십시오.
답변
또한 codeigniter가 구성 파일에 원하는 메시지 유형을 기록하도록 허용했는지 확인하십시오.
즉 $config['log_threshold'] = [log_level ranges 0-4];
답변
4 번 질문에 대한 추가 정보 해당 오류를 이메일 주소로 어떻게 이메일로 보내나요? error_log 함수에는 이메일 대상도 있습니다.
http://php.net/manual/en/function.error-log.php
Agha, 여기서 사용법을 보여주는 예를 찾았습니다.
error_log ()를 사용하여 이메일을 통해 오류 메시지 보내기
error_log($this->_errorMsg, 1, ADMIN_MAIL, "Content-Type: text/html; charset=utf8\r\nFrom: ".MAIL_ERR_FROM."\r\nTo: ".ADMIN_MAIL);
답변
In config.php add or edit the following lines to this:
------------------------------------------------------
$config['log_threshold'] = 4; // (1/2/3)
$config['log_path'] = '/home/path/to/application/logs/';
Run this command in the terminal:
----------------------------------
sudo chmod -R 777 /home/path/to/application/logs/