Pergunta

Eu gostaria de receber logs de erros via e-mail. Por exemplo, se uma mensagem de erro Warning-level deve ocorrer, eu gostaria de receber um e-mail sobre isso.

Como posso obter que trabalhar em CodeIgniter?

Foi útil?

Solução

Você poderia estender a classe núcleo Exceção para fazê-lo.

Pode ajustar a referência à classe de e-mail do CI, não tenho certeza se você pode instanciá-lo a partir de uma biblioteca como esta. Eu não usar a classe de e-mail da CI-me, eu tenho usado a biblioteca Swift Mailer. Mas isso deve levá-lo no caminho certo.

Faça um arquivo MY_Exceptions.php e colocá-lo em / application / libraries / (Ou in / application / core / para 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('your@example.com', 'Your Name');
            $ci->email->to('someone@example.com');
            $ci->email->cc('another@another-example.com');
            $ci->email->bcc('them@their-example.com');
            $ci->email->subject('error');
            $ci->email->message('Severity: '.$severity.'  --> '.$message. ' '.$filepath.' '.$line);
            $ci->email->send();
        }


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

}

Outras dicas

Uma coisa que é deixado de fora da solução é que você tem que CodeIgniters garra super-objeto para carregar e usar a biblioteca de e-mail (ou qualquer de CodeIgniters outras bibliotecas e funções nativas).

$CI =& get_instance();

Depois de ter feito isso você usa $CI vez de $this para carregar a biblioteca de e-mail e configurar todos os parâmetros. Para mais informações clique aqui e olhar sob o Utilizando CodeIgniter recursos dentro de sua biblioteca .

Oh, outra opção é obter uma aplicação logrotation que suporta e-mail digere. Não tenho certeza em qual plataforma você está, mas você poderia apenas ter algo do monitor do arquivo error_log e enviar atualizações, pode não ser tão limpo e certamente você estaria limitado a apenas informações no error_log. (Error_log é Apache, CI tem um / logs / pasta no sistema, e IIS tem de Eventos do Windows)

Estou prestes a lançar um projeto open source que faz isso e muito mais. Ele coleta erros, envia-los para um issue tracker, detecta duplicados, transforma-os em questões e e-mails do pessoal.

Os detalhes estão em https://sourceforge.net/news/?group_id=317819&id=293422 ea versão 0.1.7 menciona é devido para fora em um par de dias.

A fonte rastreador aberta é em http://elastik.sourceforge.net/

Qualquer comentário bem-vindos, Graças

scroll top