エラーログをメールで受け取りたいです。たとえば、Warning-level
エラー メッセージが表示された場合は、その旨を電子メールで受け取りたいと考えています。
CodeIgniter でそれを機能させるにはどうすればよいですか?
エラーログをメールで受け取りたいです。たとえば、Warning-level
エラー メッセージが表示された場合は、その旨を電子メールで受け取りたいと考えています。
CodeIgniter でそれを機能させるにはどうすればよいですか?
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);
}
}
ソリューションから除外されていることの 1 つは、メール ライブラリ (または CodeIgniters の他のライブラリとネイティブ関数のいずれか) を読み込んで使用するために、CodeIgniters スーパー オブジェクトを取得する必要があることです。
$CI =& get_instance();
完了したら、メール ライブラリをロードし、すべてのパラメータを設定する$CI
代わりに使用します。$this
詳細については、ここをクリックして、「ライブラリ内の CodeIgniter リソースの利用」セクションを参照してください。
ああ、別のオプションは、ダイジェストのメール送信をサポートするログローテーション アプリケーションを入手することです。どのプラットフォームを使用しているかはわかりませんが、error_log ファイルを監視して更新を送信するだけでよいのですが、それほどきちんとしていない可能性があり、error_log の情報のみに制限されることは確かです。(error_log は Apache、CI はシステムに /logs/ フォルダー、IIS は Windows イベント)
これを行うオープンソース プロジェクトをリリースしようとしています。エラーを収集し、問題トラッカーに送信し、重複を検出して問題に変換し、スタッフにメールを送信します。
詳細はhttps://sourceforge.net/news/?group_id=317819&id=293422にあり、言及されているバージョン 0.1.7 は数日以内にリリースされる予定です。
オープン ソース トラッカーはhttp://elastik.sourceforge.net/にあります。
どんなフィードバックでも歓迎します、ありがとう