ログ日記

作業ログと日記とメモ

エラーをメールで飛ばす処理

エラーをメールで飛ばすと良いと書いたのだけれど、そう言われてもその処理を作るのが結構面倒くさい。


というわけで自分の書いたコードを晒してみる。

svn co http://laiz-source.googlecode.com/svn/Laiz/branches/TRY-3.0/laiz/error/ errorMailSample

フレームワーク用なのでそのまま使うのはアレだと思えば、直接httpでアクセスして適当にコピるのがいいかも。
# コードに統一感がないのはPHP4の名残なので随所書き換えで


使い方は

<?php

require_once 'LaizErrorUtilsCreate.php';

と書くだけなんだけど、フレームワークのコンフィグクラスを必要としているのでコンストラクタを書き換えないとこれだけでは使えない。
LaizErrorUtilsCreate.phpの__construct()を削除してその設定を直接書き、_getErrorUtils()などのファイルパスを書き換えれば使えると思う(たぶん・・

<?php
...
    /* LaizErrorUtilsCreatorの$configsを予め書いておくとこのまま使えそう */
    private $configs = array('LAIZ_ERROR_MAIL_LEVEL' => E_USER_ERROR | E_USER_WARNING | E_USER_NOTICE,
                             'LAIZ_ERROR_LOG_MAIL'   => 'admin@example.com', /* メールの送り先 */
                             'LAIZ_ERROR_LOG_MAIL_FROM' => 'www-data');      /* 送信元 */

何が設定できるかは 設定ファイルのサンプル のLaizErrorUtilsセクションにある通り。
これを入れてLAIZ_ERROR_WAB_LEVELを設定すると、一応webのエラーが強化されたバックトレース出力になる。