Proximamente Bajlum Yuum

BajlumYuum

Anuncios

PHP: Niveles de error

php_thumbEn PHP existen varios niveles de error (error_reporting), los más generales son los siguientes, por orden:

  • E_ERROR: Errores graves (fatal error) que detienen inmediatamente la ejecución del código PHP
  • E_WARNING: Errores leves (non-fatal error) que no detienen la ejecución del código
  • E_PARSE: Errores sintácticos de parseo
  • E_NOTICE: Avisos o notas de sugerencias o detalles (variables no inicializadas, vacías, etc...)
  • E_ALL: Todos los anteriores.

Por defecto, en PHP el nivel de error establecido es E_ALL ^ E_NOTICE, o lo que es lo mismo, notificar todos los errores, menos los NOTICE.

Desactivar PHP Notice y PHP Warning

En PHP, mediante el parámetro de configuración error_reporting podemos definir que tipo de errores quedemos almacenar en el log.

En el caso que lo tengamos a E_ALL, veremos como se van guardando en el log PHP Notice, los cuales muchas veces conocemos pero no nos interesan en un servidor de producción. Podemos desactivarlos “restando” de E_ALL los notices mediante E_NOTICE

error_reporting = E_ALL & ~E_NOTICE

Otro tipo de errores que pueden llenar los logs son los PHP Warning. Para eliminarlos podemos hacerlo “restando” a la expresión anterior E_WARNING:

error_reporting = E_ALL & ~E_NOTICE & ~E_WARNING

Comando tail

terminal-linuxEl comando tail sirve para mostrar en pantalla las últimas líneas de un archivo. Por defecto se muestran las últimas 10 líneas, pero este numero puede variar dependiendo de las especificaciones del usuario. Su sintaxis es la siguiente:

usuario@Linux:~$ tail -opciones archivo

Ejemlo para ver el log de Apache:

usuario@Linux:~$ tail -f /etc/apache2/logs/error-log

O si nos encontramos dentro del folder que contiene el log seria algo asi(claro dependiendo el nombre del archivo):

usuario@Linux:~$tail -f dev-error_log

Opciones

  • -n: Permite especificar el número de lineas que hay que mostrar. Ejemplo:
    usuario@Linux:~$ tail -n 2 /etc/passwd
  • -q: Evita que se muestren los títulos de los archivos especificados. Ejemplo:
    usuario@Linux:~$ tail -q /etc/passwd /etc/shells
  • -f: Tras mostrar las últimas líneas, permite que el comando despliegue las líneas que se le vayan agregando al archivo. Ejemplo:
    usuario@Linux:~$ tail -f $HISTFILE
  • -c: Permite especificar el numero de caracteres a desplegar, en vez de lineas.
    usuario@Linux:~$ tail -c 21 /etc/hosts