13

エラーログをメールで受け取りたいです。たとえば、Warning-levelエラー メッセージが表示された場合は、その旨を電子メールで受け取りたいと考えています。

CodeIgniter でそれを機能させるにはどうすればよいですか?

4

4 に答える 4

18

Exception コア クラスを拡張してそれを行うことができます。

CI の電子メール クラスへの参照を調整する必要があるかもしれません。このようなライブラリからインスタンス化できるかどうかはわかりません。私自身は CI の電子メール クラスを使用していません。Swift Mailer ライブラリを使用しています。しかし、これはあなたを正しい道に導くはずです。

ファイル MY_Exceptions.php を作成し、/application/libraries/ (CI 2 の場合は /application/core/) に配置します。

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);
    }

}
于 2008-11-04T02:40:08.730 に答える
3

ソリューションから除外されていることの 1 つは、メール ライブラリ (または CodeIgniters の他のライブラリとネイティブ関数のいずれか) を読み込んで使用するために、CodeIgniters スーパー オブジェクトを取得する必要があることです。

$CI =& get_instance();

完了したら、メール ライブラリをロードし、すべてのパラメータを設定する$CI代わりに使用します。$this詳細については、ここをクリックして「ライブラリ内の CodeIgniter リソースの利用」セクションを参照してください。

于 2010-07-31T17:23:10.317 に答える
0

ああ、別のオプションは、ダイジェストのメール送信をサポートするログローテーション アプリケーションを入手することです。どのプラットフォームを使用しているかはわかりませんが、error_log ファイルを監視して更新を送信するだけでよいのですが、それほどきちんとしていない可能性があり、error_log の情報のみに制限されることは確かです。(error_log は Apache、CI はシステムに /logs/ フォルダー、IIS は Windows イベント)

于 2008-11-04T02:43:16.977 に答える
0

これを行うオープンソース プロジェクトをリリースしようとしています。エラーを収集し、問題トラッカーに送信し、重複を検出して問題に変換し、スタッフにメールを送信します。

詳細はhttps://sourceforge.net/news/?group_id=317819&id=293422にあり、言及されているバージョン 0.1.7 は数日以内にリリースされる予定です。

オープン ソース トラッカーはhttp://elastik.sourceforge.net/にあります。

どんなフィードバックでも歓迎します、ありがとう

于 2010-11-16T20:10:21.410 に答える