2008-11-04 40 views

Respuesta

16

Puede ampliar la clase Exception core para hacerlo.

Podría tener que ajustar la referencia a la clase de correo electrónico de CI, no estoy seguro si puede instanciarlo desde una biblioteca como esta. No uso la clase de correo electrónico de CI, he estado usando la biblioteca de Swift Mailer. Pero esto debería llevarte por el camino correcto.

Hacer un MY_Exceptions.php archivo y colocarlo en/application/libraries/(O en/aplicación/core/de CI 2)

class MY_Exceptions extends CI_Exceptions { 

    function __construct() 
    { 
     parent::__construct(); 
    } 

    function log_exception($severity, $message, $filepath, $line) 

    { 
     if (ENVIRONMENT === 'production') { 
      $ci =& get_instance(); 

      $ci->load->library('email'); 
      $ci->email->from('[email protected]', 'Your Name'); 
      $ci->email->to('[email protected]'); 
      $ci->email->cc('[email protected]'); 
      $ci->email->bcc('[email protected]'); 
      $ci->email->subject('error'); 
      $ci->email->message('Severity: '.$severity.' --> '.$message. ' '.$filepath.' '.$line); 
      $ci->email->send(); 
     } 


     parent::log_exception($severity, $message, $filepath, $line); 
    } 

} 
+0

Corrección en lo anterior, necesita pluralizar Excepciones. MY_Exceptions.php MY_Exceptions clase extiende CI_Exceptions { \t My_Exceptions función() { \t \t \t parent :: CI_Exceptions(); \t} ... (IC usando la versión 1.7.1) – Jay

+0

Probé el mismo correo electrónico, pero no está enviando ... Lo probé cambiando '$ datos [ "query_root_menu"] = $ t' en '$ dataA [" query_root_menu "] = $ t' Por favor ayúdenme también, es muy necesario que aprenda esto –

0

Ah, otra opción es conseguir una aplicación logrotation que los apoyos correos electrónicos resumidos. No estoy seguro de la plataforma en la que se encuentra, pero podría hacer que algo supervise el archivo error_log y le envíe actualizaciones, puede que no sea tan ordenado y ciertamente estaría limitado a solo la información en error_log. (error_log es Apache, CI tiene una carpeta/logs/en el sistema, e IIS tiene los eventos de Windows)

3

Una cosa que queda fuera de la solución es que tienes que agarrar super objetos CodeIgniters para cargar y usar el correo electrónico biblioteca (o cualquiera de las otras librerías CodeIgniters y funciones nativas).

$CI =& get_instance(); 

Después de haber hecho que se utiliza en lugar de $CI$this para cargar la biblioteca de correo electrónico y configurar todos los parámetros. Para obtener más información click here y busque en el Utilizando Recursos CodeIgniter en su biblioteca sección.

0

Estoy a punto de lanzar un proyecto de código abierto que hace esto, y más. Recopila errores, los envía a un rastreador de problemas, detecta duplicados, los convierte en problemas y envía correos electrónicos al personal.

Los detalles están en https://sourceforge.net/news/?group_id=317819&id=293422 y la versión 0.1.7 que menciona saldrá en un par de días.

El rastreador de código abierto está en http://elastik.sourceforge.net/

Cualquier comentario de bienvenida, Gracias

0

puedo configurar una open source github project para implementar esta solución con parámetros configurables de correo electrónico.

Cuestiones relacionadas