Problema
El agente PHP no informa ni captura los errores en su aplicación como se esperaba.
Solución
Si es using a third party error handler (por ejemplo: XDebug o el controlador de errores de Laravel):
- Deshabilite el controlador de errores de terceros.
- Confirme que se informan los errores consultando la página de errores de APM.
Si eres not using a third party error handler, pero aún no ves el error esperado (por ejemplo: errores 404):
- Asegúrese de que PHP esté manejando el error, porque New Relic no puede informar errores que PHP no reconoce (como errores 404 para activos estáticos en el servidor web).
- Instrumente manualmente el error que espera ver utilizando la llamada API
newrelic_notice_error()
. - Confirme que se informan los errores consultando la página de errores de APM.
Causa
PHP maneja errores con su propio controlador predeterminado. Muchos controladores de terceros, como XDebug o el controlador de errores de Laravel, a menudo anulan el controlador predeterminado de PHP y capturan el error en lugar de PHP.
El agente PHP tiene su propio controlador de errores que depende de que PHP capture el error. Dado que solo un controlador puede manejar un error, el agente no ve los errores que ya fueron manejados por el controlador externo antes de que PHP pudiera capturarlos.
Además, algunos errores (por ejemplo: errores 404) a menudo ocurren en el nivel del servidor web, lo que significa que PHP nunca está involucrado y el agente nunca captura el error. Si se usa PHP para manejar errores 404, use la llamada APInewrelic_notice_error()
para instrumentar manualmente esos errores.