PHP Error y LoggingFunciones
Introducción a PHP Error y Logging
Las funciones de Error y Logging le permiten manejar y registrar errores.
Las funciones de Error permiten a los usuarios definir reglas de manejo de errores y modificar la forma en que se registran los errores.
Las funciones de Logging permiten a los usuarios registrar aplicaciones y enviar mensajes de registro a correos electrónicos, registros del sistema u otras máquinas.
Configuración de ejecución
Las funciones de error se ven afectadas por el archivo de configuración php.ini.
Opciones de configuración de errores y registros:
| Parámetro | Valor predeterminado | Descripción | Ámbito modificable |
|---|---|---|---|
| error_reporting | NULL | Establece el nivel de reporte de errores de PHP y devuelve el nivel actual (número o constante). | PHP_INI_ALL |
| display_errors | "1" | Esta opción establece si los mensajes de error se muestran en pantalla como parte de la salida o si se ocultan al usuario sin mostrarse. Nota:No utilice esta característica en el entorno de producción (úsela durante el desarrollo y las pruebas). |
PHP_INI_ALL |
| display_startup_errors | "0" | Incluso si display_errors está habilitado, los mensajes de error durante el inicio de PHP no se mostrarán. Se recomienda encarecidamente mantener display_startup_errors desactivado excepto para fines de depuración. | PHP_INI_ALL |
| log_errors | "0" | Establece si los errores de ejecución del script deben registrarse en el registro de errores del servidor o en error_log. Tenga en cuenta que esta es una opción de configuración específica del servidor. | PHP_INI_ALL |
| log_errors_max_len | "1024" | Establece el número máximo de bytes de log_errors. En error_log se agregará información sobre el origen del error. El valor predeterminado es 1024; si se establece en 0, significa que no hay límite de longitud. Este ajuste de longitud limita los errores registrados, los errores mostrados y también $php_errormsg. | PHP_INI_ALL |
| ignore_repeated_errors | "0" | No registra mensajes duplicados. Los errores repetidos deben aparecer en la misma línea de código del mismo archivo, a menos que ignore_repeated_source esté establecido en true. | PHP_INI_ALL |
| ignore_repeated_source | "0" | Al ignorar mensajes duplicados, también ignora el origen del mensaje. Cuando esta configuración está activada, la información duplicada no registrará si fue producida por un archivo diferente o una línea de código fuente diferente. | PHP_INI_ALL |
| report_memleaks | "1" | Si este parámetro se establece en Off, la información de fugas de memoria no se mostrará (en stdout o en el registro). | PHP_INI_ALL |
| track_errors | "0" | Si está habilitado, el último error siempre estará presente en la variable $php_errormsg. | PHP_INI_ALL |
| html_errors | "1" | Desactiva las etiquetas HTML en los mensajes de error. | PHP_INI_ALL PHP_INI_SYSTEM in PHP <= 4.2.3. |
| xmlrpc_errors | "0" | Desactiva el informe de errores normal y establece el formato de error como el formato de mensajes de error XML-RPC. | PHP_INI_SYSTEM |
| xmlrpc_error_number | "0" | Se utiliza como valor del elemento faultCode de XML-RPC. | PHP_INI_ALL |
| docref_root | "" | El nuevo formato de mensaje de error incluye la página de referencia correspondiente, que describe específicamente el error o describe la función que causó el error. Para proporcionar las páginas del manual, puede descargar el manual en el idioma correspondiente desde el sitio oficial de PHP y configurar la URL en el ini a la dirección local correspondiente. Si su copia local del manual se puede acceder mediante "/manual/", simplemente puede establecer docref_root=/manual/. Además, debe configurar docref_ext para que coincida con la extensión de su archivo local docref_ext=.html. Por supuesto, también puede establecer una dirección de referencia externa. Por ejemplo, puede establecer docref_root=http://manual/en/ o docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F" |
PHP_INI_ALL |
| docref_ext | "" | Ver docref_root. | PHP_INI_ALL |
| error_prepend_string | NULL | Contenido a generar antes del mensaje de error. | PHP_INI_ALL |
| error_append_string | NULL | Contenido a generar después del mensaje de error. | PHP_INI_ALL |
| error_log | NULL | Establece el archivo en el que se registrarán los errores del script. Este archivo debe ser escribible por el usuario del servidor web. | PHP_INI_ALL |
Instalación
Las funciones de Error y Logging son parte del núcleo de PHP. No es necesario instalar nada para usarlas.
Funciones de PHP Error y Logging
PHP: indica la versión más antigua de PHP que admite esta función.
| Funciones | Descripción | PHP |
|---|---|---|
| debug_backtrace() | Genera un backtrace. | 4 |
| debug_print_backtrace() | Imprime un backtrace. | 5 |
| error_get_last() | Obtiene el último error ocurrido. | 5 |
| error_log() | Envía un error al registro de errores del servidor, a un archivo o a un destino remoto. | 4 |
| error_reporting() | Especifica qué errores se reportan. | 4 |
| restore_error_handler() | Restaura el manejador de errores anterior. | 4 |
| restore_exception_handler() | Restaura el manejador de excepciones anterior. | 5 |
| set_error_handler() | Establece una función de manejo de errores definida por el usuario. | 4 |
| set_exception_handler() | Establece una función de manejo de excepciones definida por el usuario. | 5 |
| trigger_error() | Crea un mensaje de error definido por el usuario. | 4 |
| user_error() | Alias de trigger_error(). | 4 |
Constantes de PHP Error y Logging
PHP: indica la versión más antigua de PHP que admite esta constante.
| Valor | Constante | Descripción | PHP |
|---|---|---|---|
| 1 | E_ERROR | Error fatal en tiempo de ejecución. No se puede corregir. Detiene la ejecución del script. | |
| 2 | E_WARNING | Error no fatal en tiempo de ejecución. No detiene la ejecución del script. | |
| 4 | E_PARSE | Error de análisis en tiempo de compilación. Los errores de análisis solo deben ser generados por el analizador. | |
| 8 | E_NOTICE | Aviso en tiempo de ejecución. El script detecta que posiblemente sea un error, pero también puede ocurrir durante la ejecución normal. | |
| 16 | E_CORE_ERROR | Error fatal al inicio de PHP. Es como E_ERROR del núcleo de PHP. | 4 |
| 32 | E_CORE_WARNING | Error no fatal al inicio de PHP. Es como E_WARNING del núcleo de PHP. | 4 |
| 64 | E_COMPILE_ERROR | Error fatal en tiempo de compilación. Es como E_ERROR generado por el motor de scripts Zend. | 4 |
| 128 | E_COMPILE_WARNING | Error no fatal en tiempo de compilación. Es como E_WARNING generado por el motor de scripts Zend. | 4 |
| 256 | E_USER_ERROR | Error fatal generado por el usuario. Es como E_ERROR generado por el programador usando la función PHP trigger_error(). | 4 |
| 512 | E_USER_WARNING | Error no fatal generado por el usuario. Es como E_WARNING generado por el programador usando la función PHP trigger_error(). | 4 |
| 1024 | E_USER_NOTICE | Aviso generado por el usuario. Es como E_NOTICE generado por el programador usando la función PHP trigger_error(). | 4 |
| 2048 | E_STRICT | Aviso en tiempo de ejecución. PHP sugiere que modifique el código para mejorar la interoperabilidad y compatibilidad del código. | 5 |
| 4096 | E_RECOVERABLE_ERROR | Error fatal capturable. Es como E_ERROR que puede ser capturado por un manejador definido por el usuario (ver set_error_handler()). | 5 |
| 6143 | E_ALL | Todos los niveles de errores y advertencias, excepto E_STRICT (desde PHP 6.0, E_STRICT será parte de E_ALL). | 5 |