cakephp2.doc_003
R e i - D r e a m
for Laravel
TOP > CakePHP2 > 環境関連(ログ出力)
Guest
login

最終投稿日:2019年11月20日

環境関連(ログ出力)
CakePHP2.6.12
//[app][tmp][logs][debug.log]に吐かれる
$this->log("hoge", LOG_DEBUG);
//[app][tmp][logs][error.log]に吐かれる
$this->log("foo", "error");

任意の名前のログを吐き出すには、

[app/Config/bootstrap.php]を編集

    $mydate = date("Ymd")."_hoge";
    CakeLog::config('hoge', array(
        'engine' => 'File',
        'types' => array('hoge'),
        'file' => $mydate,
    ));

    上記設定で、『YYYYMMDD_hoge.log』というファイル名で[app][tmp][logs]に吐き出される
    例)
        $this->log("エラーだよ", "hoge");
            
CakePHP2.3
< 任意のファイル名をログを記述する >

    //[app][tmp][logs][debug.log]に吐かれる
    $this->log("hoge", LOG_DEBUG);
    //[app][tmp][logs][error.log]に吐かれる
    $this->log("hoge", LOG_ERROR);

    //[app][tmp][logs][myerror.log]に吐かれる
    $this->log("hoge", "myerror");

    $mydate = date("Ymd")."_error";
    //[app][tmp][logs]に日付単位のエラーファイルが作成される
    $this->log("hoge",$mydate);

    メモ)
        エラーの内容は文字列でも変数、配列でも格納できる。
        改行は勝手にされるので意識する必要はありません。


< 本番環境でのエラー >
    CakePHPではデバッグレベルを0としている場合、あらゆるエラーが非表示になり、
    CakePHPのエラーをはじめPHPのWarningやFatalエラーも記録されなくなります。
    例えば、その状態で致命的なエラーが発生しても、画面が真っ白になったり、
    ErrorHandler::error404メソッドが実行されるだけで、
    どこかで能動的に$this->logなどで記録していない限り、解決につながる情報が記録されません。

    そんな時には以下のコードを bootstrap.php に記述する事で致命的なエラーの場合
     [app][tmp][logs][php_error.log]にログを記述する事ができる。

    < bootstrap.php >
        if ( Configure::read("debug") == 0 ) {
            error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
            ini_set("display_errors", 0); ini_set("log_errors", 1);
            ini_set("error_log", LOGS . DS . "php_error.log");
        }
            
きっぷる
ログインしてコメントを残そう!!


きっぷる