Readouble

Laravel 4.2 エラーとログ

設定Configuration

アプリケーションのログハンドラーは、app/start/global.phpスタートファイルで登録されています。デフォルトでは、このロガーはログファイルを一つだけ使用するように設定されています。しかしながら、必要であれば、この動作を変更できます。Laravelは人気のあるMonologログライブラリーを使用していますので、このライブラリーが提供する様々なハンドラーを利用できる長所があります。The logging handler for your application is registered in the app/start/global.php start file[/docs/4.2/lifecycle#start-files]. By default, the logger is configured to use a single log file; however, you may customize this behavior as needed. Since Laravel uses the popular Monolog[https://github.com/Seldaek/monolog] logging library, you can take advantage of the variety of handlers that Monolog offers.

例えば、大きな1ファイルにログを残す代わりに、日毎のファイルへログしたい場合は、スタートファイルを以下のように修正してください。For example, if you wish to use daily log files instead of a single, large file, you can make the following change to your start file:

$logFile = 'laravel.log';

Log::useDailyFiles(storage_path().'/logs/'.$logFile);

エラー詳細Error Detail

デフォルトではアプリケーションのエラー詳細は出力される設定になっています。これはエラー発生時にエラーページでスタックトレースとエラーメッセージを表示するためです。エラーの詳細を表示しないようにするためには、app/config/app.phpファイル中のdebugオプションをfalseに設定してください。By default, error detail is enabled for your application. This means that when an error occurs you will be shown an error page with a detailed stack trace and error message. You may turn off error details by setting the debug option in your app/config/app.php file to false.

Note: 特に実機での運用環境では、エラー詳細表示をオフにしておくことを強く推奨します。Note: It is strongly recommended that you turn off error detail in a production environment.

エラーの処理Handling Errors

デフォルトでは、app/start/global.phpファイルで全ての例外の処理を行なっています。By default, the app/start/global.php file contains an error handler for all exceptions:

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

これはもっとも基本的なエラー処理です。必要に応じ、もっと多くの処理を指定してください。ハンドラーは処理する例外のタイプヒントを元に呼び出されます。例えば、RuntimeExceptionのみを処理するハンドラーを作成したいのならば:This is the most basic error handler. However, you may specify more handlers if needed. Handlers are called based on the type-hint of the Exception they handle. For example, you may create a handler that only handles RuntimeException instances:

App::error(function(RuntimeException $exception)
{
	// この例外を処理する...
});

もし例外ハンドラーが、レスポンスをリターンしたら、それはブラウザーに送信され、他のハンドラーは呼び出されません。If an exception handler returns a response, that response will be sent to the browser and no other error handlers will be called:

App::error(function(InvalidUserException $exception)
{
	Log::error($exception);

	return '恐れ入ります。このアカウントで不具合が発生したようです!';
});

PHPのfatalエラーをリッスンするにはApp::fatalメソッドを使用します。To listen for PHP fatal errors, you may use the App::fatal method:

App::fatal(function($exception)
{
	//
});

複数の例外ハンドラーを使用する場合、一般的なものから限定的なものへの順番で定義してください。例えば、全部の例外を処理するタイプExceptionの例外のハンドラーは、カスタム例外、例えばIlluminate\Encryption\DecryptExceptionのハンドラーより前で定義する必要があります。If you have several exception handlers, they should be defined from most generic to most specific. So, for example, a handler that handles all exceptions of type Exception should be defined before a custom exception type such as Illuminate\Encryption\DecryptException.

エラーハンドラーの設置場所Where To Place Error Handlers

エラーハンドラーを登録しておく、決まったデフォルトの設置場所はありません。Laravelでは、皆さんに自由に決めてもらっています。start/global.phpファイルに設置するのはひとつのオプションです。一般的に、このファイルは「初期設定」コードを設置するために便利な場所と言えるでしょう。このファイルが乱雑になってきたら、app/errors.phpファイルを作成し、start/global.phpスクリプトの中からrequireすることもできます。3つ目のオプションはサービスプロバイダーでハンドラーを登録する方法です。いずれにせよ、「正しい」一つの答えは存在しません。皆さんが快適に思える場所で設定してください。There is no default "home" for error handler registrations. Laravel offers you freedom in this area. One option is to define the handlers in your start/global.php file. In general, this is a convenient location to place any "bootstrapping" code. If that file is getting crowded, you could create an app/errors.php file, and require that file from your start/global.php script. A third option is to create a service provider[/docs/4.2/ioc#service-providers] that registers the handlers. Again, there is no single "correct" answer. Choose a location that you are comfortable with.

HTTP例外HTTP Exceptions

いくつかの例外は、サーバーからのHTTPエラーコードを表しています。例えば、「ページが見つかりません(404)」であったり、「認証されていないエラー(401)」であったり、開発者が発生させた500エラーであることもあるでしょう。このようなレスポンスをリターンしたい場合には、以下のように行なってください。Some exceptions describe HTTP error codes from the server. For example, this may be a "page not found" error (404), an "unauthorized error" (401) or even a developer generated 500 error. In order to return such a response, use the following:

App::abort(404);

オプションとして、理由を説明することもできます。Optionally, you may provide a response:

App::abort(403, 'Unauthorized action.');

このメソッドはリクエストのライフサイクル中であれば、いつでも使用できます。This method may be used at any time during the request's lifecycle.

404エラーの処理Handling 404 Errors

カスタム404エラーページを表示するのは簡単で、アプリケーション中の全「404 見つかりません」エラーを処理するためのエラーハンドラーを登録し、エラービューをリターンしてください。You may register an error handler that handles all "404 Not Found" errors in your application, allowing you to easily return custom 404 error pages:

App::missing(function($exception)
{
	return Response::view('errors.missing', array(), 404);
});

ログLogging

Laravelのログ機能はパワフルなMonologをラップした、シンプルなレイヤーです。Laravelはアプリケーションにログファイルを一つ作成し、app/storage/logs/laravel.logに保存するデフォルト設定になっています。以下のように、情報をログできます。The Laravel logging facilities provide a simple layer on top of the powerful Monolog[http://github.com/seldaek/monolog] library. By default, Laravel is configured to create a single log file for your application, and this file is stored in app/storage/logs/laravel.log. You may write information to the log like so:

Log::info('なにか役に立つ情報');

Log::warning('悪いことが起きている可能性がある情報');

Log::error('本当に悪いことが起きた情報');

ログはRFC 5424で定義されているdebuginfonoticewarningerrorcriticalalertの7レベルをサポートしています。The logger provides the seven logging levels defined in RFC 5424[http://tools.ietf.org/html/rfc5424]: debug, info, notice, warning, error, critical, and alert.

ログメソッドにはコンテキストデーターを配列で渡すこともできます。An array of contextual data may also be passed to the log methods:

Log::info('Log message', array('context' => 'Other helpful information'));

Monologにはログに使えるその他の多彩なハンドラーが用意されています。必要であれば、Laravelが内部で使用しているMonologインスタンスへアクセスすることもできます。Monolog has a variety of additional handlers you may use for logging. If needed, you may access the underlying Monolog instance being used by Laravel:

$monolog = Log::getMonolog();

ログに渡される全てのメッセージを捉えるため、イベントを登録することもできます。You may also register an event to catch all messages passed to the log:

ログリスナーを登録するRegistering A Log Listener

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

章選択

Artisan CLI

設定

明暗テーマ
light_mode
dark_mode
brightness_auto システム設定に合わせる
テーマ選択
photo_size_select_actual デフォルト
photo_size_select_actual モノクローム(白黒)
photo_size_select_actual Solarized風
photo_size_select_actual GitHub風(青ベース)
photo_size_select_actual Viva(黄緑ベース)
photo_size_select_actual Happy(紫ベース)
photo_size_select_actual Mint(緑ベース)
コードハイライトテーマ選択

明暗テーマごとに、コードハイライトのテーマを指定できます。

テーマ配色確認
スクリーン表示幅
640px
80%
90%
100%

768px以上の幅があるときのドキュメント部分表示幅です。

インデント
無し
1rem
2rem
3rem
原文確認
原文を全行表示
原文を一行ずつ表示
使用しない

※ 段落末のEボタンへカーソルオンで原文をPopupします。

Diff表示形式
色分けのみで区別
行頭の±で区別
削除線と追記で区別

※ [tl!…]形式の挿入削除行の表示形式です。

テストコード表示
両コード表示
Pestのみ表示
PHPUnitのみ表示
和文変換

対象文字列と置換文字列を半角スペースで区切ってください。(最大5組各10文字まで)

本文フォント

総称名以外はCSSと同様に、"〜"でエスケープしてください。

コードフォント

総称名以外はCSSと同様に、"〜"でエスケープしてください。

保存内容リセット

localStrageに保存してある設定項目をすべて削除し、デフォルト状態へ戻します。

ヘッダー項目移動

キーボード操作