Codeigniter-error-handling

提供:Dev Guides
移動先:案内検索

CodeIgniter-エラー処理

多くの場合、アプリケーションの使用中にエラーが発生します。 エラーが適切に処理されない場合、ユーザーにとって非常に迷惑です。 CodeIgniterは、簡単なエラー処理メカニズムを提供します。

エラーメッセージは開発段階で簡単に解決できるため、アプリケーションが本番モードではなく開発モードの場合に、メッセージを表示する必要があります。

以下の行を index.php ファイルから変更することにより、アプリケーションの環境を変更できます。 これは何にでも設定できますが、通常、この目的に使用される3つの値(開発、テスト、生産)があります。

define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');

異なる環境では、異なるレベルのエラー報告が必要になります。 デフォルトでは、開発モードではエラーとテストが表示され、ライブモードではエラーが非表示になります。 CodeIgniterは、エラーを処理するために以下に示す3つの関数を提供します。

  • * show_error()*関数は、画面の上部にエラーをHTML形式で表示します。
Syntax show_error($message, $status_code, $heading = 'An Error Was Encountered')
Parameters
  • $ messagemixed)-エラーメッセージ
  • $ status_codeint)− HTTP応答ステータスコード
  • $ headingstring)-エラーページの見出し
Return Type mixed
  • * show_404()*関数は、存在しないページにアクセスしようとするとエラーを表示します。
Syntax show_404($page = , $log_error = TRUE)
Parameters
  • $ pagestring)– URI文字列
  • $ log_errorbool)–エラーを記録するかどうか
Return Type void
  • * log_message()*関数は、ログメッセージを書き込むために使用されます。 これは、カスタムメッセージを作成する場合に便利です。
Syntax log_message($level, $message, $php_error = FALSE)
Parameters
  • $ levelstring)−ログレベル:「エラー」、「デバッグ」、または「情報」
  • $ messagestring)-ログに記録するメッセージ
  • $ php_errorbool)-ネイティブPHPエラーメッセージを記録するかどうか
Return Type void

ロギングは application/config/config.php ファイルで有効にできます。 以下に、しきい値を設定できるconfig.phpファイルのスクリーンショットを示します。

/*
|--------------------------------------------------------------------------------
|   Error Logging Threshold
|--------------------------------------------------------------------------------
| You can enable error logging by setting a threshold over zero. The
| threshold determines what gets logged. Threshold options are:
|
|   0 = Disable logging, Error logging TURNED OFF
|   1 = Error Message (including PHP errors)
|   2 = Debug Message
|   3 = Informational Messages
|   4 = All Messages
|
| You can also pass an array with threshold levels to show individual error types
|
|   array(2) = Debug Message, without Error Messages
| For a live site you'll usually only enable Errors (1) to be logged otherwise
| your log files will fill up very fast.
|
*/
$config['log_threshold'] = 0;

ログメッセージは application/log/ にあります。 ログファイルを有効にする前に、このディレクトリが書き込み可能であることを確認してください。

エラーメッセージのさまざまなテンプレートは、 application/views/errors/cli または application/views/errors/html にあります。