try log handling generate example error custom catch php error-handling

php - log - ¿Cómo registrar errores y advertencias en un archivo?



php try catch exception getmessage (7)

Además, necesita la directiva "Permitir opciones de anulación" para que esto funcione. (Apache 2.2.15)

Cómo activar todos los errores y advertencias y registrarlos en un archivo, pero configurar todo eso dentro del script (sin cambiar nada en php.ini). Quiero definir un nombre de archivo para que todos los errores y advertencias se registren en él.


Eche un vistazo a la opción de configuración log_errors en php.ini. Parece hacer justo lo que quieres. Creo que también puede usar la opción error_log para establecer su propio archivo de registro.

Cuando la directiva log_errors está log_errors , cualquier error reportado por PHP se registrará en el registro del servidor o en el archivo especificado con error_log . También puede configurar estas opciones con ini_set , si lo necesita.

(Tenga en cuenta que display_errors debe estar deshabilitado en php.ini si esta opción está habilitada)


Esa es mi función corta personal

# logging /* [2017-03-20 3:35:43] [INFO] [file.php] Here we are [2017-03-20 3:35:43] [ERROR] [file.php] Not good [2017-03-20 3:35:43] [DEBUG] [file.php] Regex empty mylog (''hallo'') -> INFO mylog (''fail'', ''e'') -> ERROR mylog (''next'', ''d'') -> DEBUG mylog (''next'', ''d'', ''debug.log'') -> DEBUG file debug.log */ function mylog($text, $level=''i'', $file=''logs'') { switch (strtolower($level)) { case ''e'': case ''error'': $level=''ERROR''; break; case ''i'': case ''info'': $level=''INFO''; break; case ''d'': case ''debug'': $level=''DEBUG''; break; default: $level=''INFO''; } error_log(date("[Y-m-d H:i:s]")."/t[".$level."]/t[".basename(__FILE__)."]/t".$text."/n", 3, $file); }


Simplemente ponga estos códigos en la parte superior de su archivo PHP / índice:

error_reporting(E_ALL); // Error engine - always ON! ini_set(''display_errors'', TRUE); // Error display - OFF in production env or real server ini_set(''log_errors'', TRUE); // Error logging ini_set(''error_log'', ''your/path/to/errors.log''); // Logging file ini_set(''log_errors_max_len'', 1024); // Logging file size


Usa el siguiente código:

ini_set("log_errors", 1); ini_set("error_log", "/tmp/php-error.log"); error_log( "Hello, errors!" );

Entonces mira el archivo:

tail -f /tmp/php-error.log

O actualice php.ini como se describe en esta entrada de blog de 2008.



agregue este código en .htaccess (como una alternativa de la función php.ini / ini_set ):

<IfModule mod_php5.c> php_flag log_errors on php_value error_log ./path_to_MY_PHP_ERRORS.log </IfModule>

ps esto es para servidores de tipo apache.