Para simplemente poner una línea en el registro de errores del servidor, utilice la función error_log() de PHP. Sin embargo, ese método no enviará un correo electrónico.
En primer lugar, para desencadenar un error:
trigger_error("Error message here", E_USER_ERROR);
Por defecto, esto irá en el archivo de registro de errores del servidor. Ver el ErrorLog directive para Apache. Para establecer su propio archivo de registro:
ini_set('error_log', 'path/to/log/file');
Tenga en cuenta que el archivo de registro que ha seleccionado ya debe existir y ser escribible por el proceso del servidor. La forma más sencilla de hacer que el archivo sea editable es hacer que el usuario del servidor sea el propietario del archivo. (. El usuario del servidor puede ser nadie, _www, Apache, o algo más, dependiendo de la distribución OS)
Para enviar por correo electrónico el error, es necesario configurar un controlador de errores personalizado:
function mail_error($errno, $errstr, $errfile, $errline) {
$message = "[Error $errno] $errstr - Error on line $errline in file $errfile";
error_log($message); // writes the error to the log file
mail('[email protected]', 'I have an error', $message);
}
set_error_handler('mail_error', E_ALL^E_NOTICE);
Consulte el relevant PHP documentation para obtener más información.
Ahora el enlace es [http://ellislab.com/codeigniter/user-guide/general/errors.html](http://ellislab.com/codeigniter/user-guide/general/errors.html) – machineaddict
¿Hay cualquier implicancia de seguridad para esto? –
Esto descarga datos a un archivo php cuyo nombre de archivo está en el formato: log- [Y-m-d H: i: s] o el valor que se establezca en la configuración de la clave log_date_format definida en su archivo de configuración. Mientras no logre registrar/volcar datos confidenciales, debería ser bastante seguro. Este archivo es relativo a una página index.html de forma predeterminada, por lo que obviamente los archivos php generados no serían de acceso público, pero nunca se sabrá. Asegúrese de tener todas estas precauciones en su lugar si cambia el directorio predeterminado de la aplicación/registros. –