문제
애플리케이션의 오류는 예상대로 PHP 에이전트에 의해 보고되거나 캡처되지 않습니다.
해결책
using a third party error handler 인 경우(예: XDebug 또는 Laravel의 오류 핸들러):
- 타사 오류 처리기를 비활성화합니다.
- APM 오류 페이지 를 보고 오류가 보고되는지 확인합니다.
귀하가 not using a third party error handler 인데 여전히 사전에 오류가 표시되지 않는 경우(예: 404 오류):
- New Relic은 PHP가 인식하지 못하는 오류(예: 웹 서버의 정적 자산에 대한 404 오류)를 보고할 수 없으므로 PHP가 오류를 처리하고 있는지 확인하십시오.
newrelic_notice_error()
API 호출 을 사용하여 예상되는 오류를 수동으로 계측합니다.- APM 오류 페이지 를 보고 오류가 보고되는지 확인합니다.
원인
PHP는 자체 기본 핸들러로 오류를 처리합니다. XDebug 또는 Laravel의 오류 처리기와 같은 많은 타사 처리기는 종종 PHP의 기본 처리기를 무시하고 PHP 대신 오류를 캡처합니다.
PHP 에이전트에는 오류를 캡처하는 PHP에 의존하는 자체 오류 처리기가 있습니다. 하나의 핸들러만 오류를 처리할 수 있으므로 에이전트는 PHP에서 캡처하기 전에 타사 핸들러에서 이미 처리한 오류를 보지 못합니다.
또한 일부 오류(예: 404 오류)는 웹 서버 수준에서 자주 발생합니다. 즉, PHP가 관련되지 않고 오류가 에이전트에 의해 캡처되지 않습니다. PHP를 사용하여 404 오류를 처리하는 경우 newrelic_notice_error()
API 호출 을 사용하여 해당 오류를 수동으로 계측합니다.