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.
Ver
-
error_log
- Enviar un mensaje de error en alguna parte
Ejemplo
error_log("You messed up!", 3, "/var/tmp/my-errors.log");
Puede personalizar el manejo de errores con sus propios manejadores de errores para llamar a esta función por usted siempre que ocurra un error o una advertencia o lo que necesite para iniciar sesión. Para obtener información adicional, consulte el Capítulo Manejo de errores en el Manual de PHP.
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.