Laravel使ってみた (9) - Error&Logging -

2013-07-11T00:00:00+00:00 Laravel PHP

http://laravel.com/docs/errors のドキュメント読み

Laravel上でのエラーとかはApp::abortとかでHTTPステータスコードやメッセージを送出してエラーにするとかあるけど、それをキャッチするにはapp/start/globals.phpなどで

<?php

App::error(function(Exception $exception, $code) {
    Log::error($exception);
});

とか定義出来て、んまぁResponseをリターンする事も出来るっていう感じですかね。でルーティングが見つからないとかのエラーは

<?php

App::missing(function($exception) {
    return Response::make("not found", 404);
});

とかも出来ちゃう模様で。んで

っていう感じ。前者のやつは結構ポイントじゃないかなーって思うんですが、App::missingとApp::errorを両方定義しているとmissingに処理が回らなかった。という事で$codeが404な場合にはreturnしちゃえば処理が回る模様。ソースで把握した訳じゃないので非理論的なんですが

んで持ってログに関しては http://laravel.com/api/class-Illuminate.Log.Writer.html を参考。正確にはLog.Writerなクラスを使うんだけれども、例えばLogクラスを使ってロギングするにあたって、ちょっとそれ取りたいとかっていう場合とかには

<?php

Log::listen(function($level, $message, $context) {
});

な感じでlisten出来ちゃう模様げ。んまぁ同期的なので、ここの処理で遅くなるような事をすると色々問題になりそうなのであんま余計な事しない方が良いかもですね。んまぁエラー起きたら、エラーレポートをどっかのシステムにぶん投げるとか、そういうのも結構遅くなる要因にもなりそうだけど

とりまぁドキュメントはこんくらいかなと

Laravel使ってみた (10) - Views & Response - Laravel使ってみた (8) - Laravelでのモックテスト -