CodeIgniter에서 PHP 오류 메시지를 어떻게 이메일로 보낼 수 있습니까?
-
06-07-2019 - |
문제
이메일을 통해 오류 로그를 받고 싶습니다. 예를 들어, a Warning-level
오류 메시지가 발생하고 이메일을 받고 싶습니다.
Codeigniter에서 어떻게 일할 수 있습니까?
해결책
예외 핵심 클래스를 확장하여 수행 할 수 있습니다.
CI의 이메일 클래스에 대한 참조를 조정해야 할 수도 있습니다. 이와 같은 라이브러리에서 인스턴스화 할 수 있는지 확실하지 않습니다. CI의 이메일 클래스를 직접 사용하지 않고 Swift Mailer 라이브러리를 사용하고 있습니다. 그러나 이것은 당신을 올바른 길로 데려 갈 것입니다.
my_exceptions.php 파일을 만들어/애플리케이션/라이브러리/(또는 CI 2의 경우/application/core/에 배치)
class MY_Exceptions extends CI_Exceptions {
function __construct()
{
parent::__construct();
}
function log_exception($severity, $message, $filepath, $line)
{
if (ENVIRONMENT === 'production') {
$ci =& get_instance();
$ci->load->library('email');
$ci->email->from('your@example.com', 'Your Name');
$ci->email->to('someone@example.com');
$ci->email->cc('another@another-example.com');
$ci->email->bcc('them@their-example.com');
$ci->email->subject('error');
$ci->email->message('Severity: '.$severity.' --> '.$message. ' '.$filepath.' '.$line);
$ci->email->send();
}
parent::log_exception($severity, $message, $filepath, $line);
}
}
다른 팁
솔루션에서 벗어난 한 가지는 CodeIgniters Super Object를 가져와 이메일 라이브러리 (또는 Codeigniters 기타 라이브러리 및 기본 기능)를로드하고 사용해야한다는 것입니다.
$CI =& get_instance();
당신이 그 일을 한 후에 당신은 사용합니다 $CI
대신에 $this
이메일 라이브러리를로드하고 모든 매개 변수를 설정합니다. 자세한 내용은 여기를 클릭하십시오 그리고 아래를보십시오 라이브러리 내에서 Codeigniter 리소스를 활용합니다 부분.
오, 또 다른 옵션은 이메일 소화를 지원하는 Logrotation 응용 프로그램을 얻는 것입니다. 어떤 플랫폼에 있는지 확실하지 않지만 Error_Log 파일을 모니터링하고 업데이트를 보낼 수 있습니다. 깔끔하지 않을 수 있으며 Error_Log의 정보 만 제한 될 수 있습니다. (Error_Log는 Apache, CI에는 시스템에 / 로그 / 폴더가 있으며 IIS에는 Windows 이벤트가 있습니다)
나는이 작업을 수행하는 오픈 소스 프로젝트를 출시하려고합니다. 오류를 수집하고 문제 추적기로 보내고, 복제물을 감지하고, 문제와 이메일 직원으로 전환합니다.
세부 사항이 있습니다 https://sourceforge.net/news/?group_id=317819&id=293422 그리고 0.1.7 버전은 며칠 안에 예정되어 있습니다.
오픈 소스 트래커가 있습니다 http://elastik.sourceforge.net/
모든 피드백을 환영합니다. 감사합니다
나는 설정했다 오픈 소스 Github 프로젝트 구성 가능한 이메일 매개 변수 로이 솔루션을 구현합니다.