¿Qué son los registros de errores?
Los registros de errores son archivos de texto que contienen listas de errores que se producen durante ejecución de la aplicación.
They are generated by computer systems to identify and correct issues.
Registros del servidor web
En la Web, los desarrolladores cuentan con los registros de errores de diversas fuentes para localizar problemas y encontrar soluciones.
Un desarrollador web o un administrador de red pueden vigilar de cerca los registros de errores generados por un servidor web y su sistema operativo subyacente.
Además, todos los sitios web y aplicaciones se ejecutan en una pila de software que utiliza aplicaciones que pueden crear diferentes registros de errores que contienen información valiosa para desarrolladores y administradores.
Entre los registros de errores comúnmente supervisados están los producidos por:
- Sistemas operativos basados en Linux o Windows
- Servidores web – Apache, Nginx o IIS
- Bases de datos – MySQL, MariaDB, MongoDB, etc.
- Sistemas de gestión de contenidos – WordPress, Joomla, Drupal, etc.
- PHP u otros lenguajes de programación
Cuando varias aplicaciones producen registros de errores, lo mejor es empezar por la parte superior de la pila de software al solucionar los problemas.
Dado que cada aplicación puede tener dependencias que afectan a otras partes de la pila de software, un error en una aplicación puede desencadenar otro en otra parte del sistema.
¿Qué incluye un registro de errores?
Los detalles exactos incluidos en un registro de errores pueden variar en función del sistema que lo haya generado y de su configuración.
Typically, it contains basic information about each error such as the time of the error, user data, and any available error codes or messages.
For example, Apache can be configured to write specific information to the error log, including:
- Hora y fecha en que se produjo el error
- Versión de software
- Código de estado HTTP
- Dirección IP del cliente que realiza la solicitud
- Datos del agente de usuario
- La página solicitada
- La página que remite al cliente
Los registros de errores del servidor web no deben contener datos identificativos del usuario ni información sensible, como contraseñas.
Sin embargo, a menudo incluyen detalles del agente de usuario sobre el navegador o el software cliente que realiza una petición al servidor.
Toda esta información ayuda a los profesionales de TI, como los administradores de sitios web ingenieros devops y administradores de servidores identifican las áreas en las que los errores pueden dificultar el rendimiento o afectar a la seguridad.
Las entradas en el archivo error.log de Apache también pueden ser breves menciones de advertencias u otros sucesos no relacionados con errores.
En el ejemplo siguiente, el registro de errores muestra una advertencia sobre una configuración SSL incorrecta.
[Mon Aug 02 11:02:37.537152 2021] [ssl:warn] [pid 11648:tid 580] AH01909: El certificado del servidor www.example.com:443:0 NO incluye un ID que coincida con el nombre del servidor
Las advertencias son diferentes de los errores, y pueden proporcionar información adicional para ayudar al desarrollo y las pruebas.
Configurar adecuadamente los mensajes de advertencia y los registros de errores puede ayudar a profundizar en el origen de los problemas.
Por ejemplo, PHP puede personalizarse para mostrar determinados tipos de entradas de registro, como mostrar sólo mensajes de advertencia, o una combinación personalizada de advertencias, errores y avisos.
WordPress puede producir su propio archivo de depuración, pero el registro de errores de Apache también tiene muchos detalles que pueden ayudar a solucionar cualquier problema a nivel de aplicación.
En este ejemplo, una entrada mucho más detallada en el registro de errores de Apache apunta a problemas con la base de datos MySQL durante una instalación de WordPress.
[Mon Aug 02 11:07:53.238639 2021]
[pid 7476:tid 1856] [cliente ::1:65335] Error en la base de datos de WordPress La tabla 'nitrop.wp_options' no existe para la consulta INSERT INTO `wp_options` (`option_name`, `option_value`, `autoload`) VALUES ('nonce_salt', 'AJPtFcc-SqX-af(__construct, WP_Scripts->init, do_action_ref_array('wp_default_scripts'), WP_Hook->do_action, WP_Hook->apply_filters, wp_default_scripts, wp_create_nonce, wp_hash, wp_salt, update_site_option, update_network_option, add_network_option, add_option, referer: http://localhost/nitrop/wp-admin/install.php?step=1
Modo de depuración de WordPress
WordPress también puede crear un registro de errores, aunque esta opción está desactivada por defecto. En wp-config.php proporciona la opción de activar la constante WP_DEBUG que pone a WordPress en modo depuración. Para activar el modo de depuración en WordPress, localiza la constante WP_DEBUG en el archivo wp-config.php y establece su valor en verdadero.
define( 'WP_DEBUG', true );
Con el modo de depuración activado, los mensajes de error pueden mostrarse en las páginas web en una ventana del navegador o en un archivo de registro.
Para mostrar los mensajes de error en las páginas web, añade la línea siguiente y establece el parámetro WP_DEBUG_DISPLAY a true.
define( 'WP_DEBUG_DISPLAY', true);
La opción de WordPress debe estar activado para escribir errores y advertencias en un archivo de registro.
Puedes activar el depurar.log añadiendo la siguiente línea y estableciendo el parámetro WP_DEBUG_LOG a true.
define( 'WP_DEBUG_LOG', true );
Una vez activado, el depurar.log contiene todos los errores, advertencias y mensajes de WordPress.
El archivo de registro se encuentra en la carpeta wp-contenido directorio.
Para verlo, los usuarios deben acceder primero a los archivos de su sitio web a través del gestor de archivos, FTP o SSH, y luego abrir el archivo depurar.log con un editor de texto.
Como en el ejemplo anterior del registro de errores de Apache, el archivo de depuración de WordPress contiene detalles específicos como la hora del suceso y cualquier código o mensaje de error.
Aunque intentar leer un registro de errores densamente empaquetado no es una lectura fácil, el registro de depuración de WordPress suele proporcionar información suficiente para empezar a solucionar errores comunes como:
- Páginas que devuelven un estado 404
- Mensajes de error interno del servidor
- «Mensaje de error «Demasiados redireccionamientos
- Páginas rotas
- Contenido mostrado incorrectamente, como imágenes, medios, etc.
- 502 Error de puerta de enlace incorrecta
WordPress recomienda no utilizar el modo de depuración en un sitio web activo, ya que está diseñado para pruebas y desarrollo.
Es una buena idea desactivar el modo de depuración cuando no se utilice.
Puedes desactivarlo en la opción wp-config.php cambiando las mismas opciones anteriores a false.Hay varios plugins disponibles para ayudar a activar el modo de depuración de WordPress y el archivo debug.log archivo. Utilizar un plugin elimina la necesidad de editar el archivo wp-config.php manualmente y puede proporcionar algunas otras funciones para ayudar a los usuarios con la depuración.
Registro de errores PHP
Mientras que los registros de errores del servidor y el archivo de depuración de WordPress pueden proporcionar algunos detalles sobre los errores de PHP, el registro de errores de PHP puede ofrecer información adicional sobre problemas de codificación o de ejecución.
En un entorno de pruebas o desarrollo, es mejor ver tantos errores y advertencias como sea posible.
Una vez que un proyecto está en su entorno de producción, o en vivo, la mayoría de los mensajes de error se desactivan para mejorar la experiencia del usuario.
PHP incluye varias funciones para ayudar a recopilar información sobre errores en formatos prácticos para cada escenario.
En un entorno en vivo, es posible que los desarrolladores no quieran que los usuarios vean los mensajes de error en el momento en que se producen.
En su lugar, los errores pueden almacenarse en un archivo de registro de errores para que puedan analizarse posteriormente.
Para registrar errores en un archivo, la función log_errores debe estar activada en php.ini.
Log_errors = 1
El mensaje de error se define mediante error_log. Esta función admite parámetros para un mensaje de error especificado, dónde debe ir el mensaje o cualquier cabecera adicional que se quiera incluir.
error_log("¡Se ha producido un error!", 0)
Con el archivo de registro de errores activado, se pueden recopilar y analizar datos para ayudar a localizar fallos, elaborar informes útiles o identificar áreas que necesitan mejoras.
Por defecto, log_errores registra los mensajes de error en el registro de errores del servidor.
La ubicación del archivo del registro de errores puede variar según tu servidor y su configuración.
ApacheNginx/var/log/apache2/error.log/var/log/nginx/error.log