このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン 次のリビジョン 両方とも次のリビジョン | ||
apricot:usage:ja:errors-logging [2020/07/29 13:33] tanaka 作成 |
apricot:usage:ja:errors-logging [2020/08/15 06:57] y2sunlight [エラーバッグ] |
||
---|---|---|---|
行 6: | 行 6: | ||
--- // | --- // | ||
- | [[apricot: | + | [[apricot: |
目次 | 目次 | ||
+ | * [[apricot: | ||
* [[apricot: | * [[apricot: | ||
+ | * Apricot ログとエラー処理 | ||
* [[apricot: | * [[apricot: | ||
* [[apricot: | * [[apricot: | ||
行 16: | 行 18: | ||
* [[apricot: | * [[apricot: | ||
* [[apricot: | * [[apricot: | ||
- | * Apricot ログとエラー処理 | ||
* [[apricot: | * [[apricot: | ||
行 22: | 行 23: | ||
===== ロギング ===== | ===== ロギング ===== | ||
- | >TODO | + | |
+ | ロギングは、[[https:// | ||
+ | |||
+ | 使用法: **Log:: | ||
+ | |||
+ | ^メソッド^機能^ | ||
+ | |void emergency(string $message, array $context = [])|emergencyレベルのログ| | ||
+ | |void alert(string $message, array $context = [])|alertレベルのログ| | ||
+ | |void critical(string $message, array $context = [])|criticalレベルのログ| | ||
+ | |void error(string $message, array $context = [])|errorレベルのログ| | ||
+ | |void warning(string $message, array $context = [])|warningレベルのログ| | ||
+ | |void notice(string $message, array $context = [])|noticeレベルのログ| | ||
+ | |void info(string $message, array $context = [])|infoレベルのログ| | ||
+ | |void debug(string $message, array $context = [])|debugレベルのログ| | ||
+ | |void log($level, string $message, array $context = [])|任意レベルのログ| | ||
+ | |||
+ | 使用例: | ||
+ | |||
+ | <code php> | ||
+ | use Apricot\Log; | ||
+ | Log:: | ||
+ | </code> | ||
\\ | \\ | ||
- | ===== エラーハンドラーの設定 ===== | + | === 設定ファイル |
- | >TODO | + | |
+ | {{fa> | ||
+ | <code php monolog.setting.php> | ||
+ | <?php | ||
+ | /** | ||
+ | * This file contains Monolog settings. | ||
+ | */ | ||
+ | return | ||
+ | [ | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ]; | ||
+ | </ | ||
+ | |||
+ | * name --- ログの名前 (初期設定は、環境変数APP_NAME(無ければAPP_NAME)の値) | ||
+ | * path --- ログの出力パス (初期設定は、var/ | ||
+ | * level --- ログの出力レベル (初期設定は、' | ||
+ | * max_files --- ログファイルの最大保存数 (初期設定は、0(無制限)) | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== 集約例外ハンドラー ===== | ||
+ | |||
+ | Apricotでは例外ハンドラーとして[[https:// | ||
+ | |||
+ | 集約例外ハンドラーの動作にはデバッグモードと本番モードがあります。 | ||
+ | |||
+ | * デバッグモード --- ログ出力して、例外内容とスタックトレースを表示する | ||
+ | * 本番モード --- ログ出力して、利用者向けのエラーページを表示する | ||
+ | |||
+ | これらの動作をカスタマイズするには、以下のWhoopsの初期設定ファイルを変更して下さい。 | ||
+ | |||
+ | 初期設定ファイル: | ||
+ | < | ||
+ | {your-project}/ | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | === 設定ファイル === | ||
+ | |||
+ | {{fa> | ||
+ | <code php whoops.setting.php> | ||
+ | <?php | ||
+ | /** | ||
+ | * This file contains Whoops settings. | ||
+ | */ | ||
+ | return | ||
+ | [ | ||
+ | ' | ||
+ | ' | ||
+ | ' | ||
+ | ]; | ||
+ | </ | ||
+ | |||
+ | * debug --- デバッグモードの場合 true (初期設定は、環境変数APP_DEBUGの値。無ければfalse) | ||
+ | * controller --- 集約例外コントローラクラスを指定する (次項参照) | ||
+ | * action --- 集約例外コントローラのアクションメソッド名を指定する (次項参照) | ||
+ | |||
+ | \\ | ||
+ | |||
+ | === 集約例外コントローラ === | ||
+ | |||
+ | 本番モードで集約例外ハンドラーから呼び出されるコントローラを集約例外コントローラと呼びます。上述の whoops.setting.php での設定に従い、例外発生時に '' | ||
+ | |||
+ | 初期実装されている集約例外コントローラでは、例外の種類に応じてHTTPステータスコードを以下のように設定します。 | ||
+ | |||
+ | * CSRFエラーなどの TokenMismatchException( トークンエラー )は419( Page Expired )に設定 | ||
+ | * HttpException( ヘルパー関数 '' | ||
+ | * その他の例外は 500( Internal Server Error )に設定 | ||
+ | |||
+ | 集約例外コントローラは以下に配置されています。必要に応じてカスタマイズできます。 | ||
+ | |||
+ | < | ||
+ | {your-project}/ | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== コアの例外クラス | ||
+ | |||
+ | Exceptionを継承した2つの例外クラスがあります。 | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== アプリの例外クラス ===== | ||
+ | |||
+ | '' | ||
+ | |||
+ | * '' | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== エラーバッグ ===== | ||
+ | |||
+ | エラーバッグ( '' | ||
+ | |||
+ | ErrorBag には名前を付けることができます。バッグ内のエラーはキー付きの連想配列で保存されています。ErrorBagには以下のメソッドがあります。 | ||
+ | |||
+ | ^メソッド^機能^ | ||
+ | |<nowiki>__</ | ||
+ | |count(string $name=null): | ||
+ | |has(string $key, string $name=self:: | ||
+ | |get(string $key, string $name=self:: | ||
+ | |all(string $name=null): | ||
+ | |put($errors)|エラー配列の設定| | ||
+ | |||
+ | エラーバッグは[[https:// | ||
\\ | \\ | ||