Symfoware

Symfowareについての考察blog

CodeIgniter 3 エラー処理について(General Topics - Error Handling)

CodeIgniter User Guide

General TopicsのError Handlingについて調べてみます。
Error Handling



show_error



エラーページを表示するには、show_error関数が便利です。


show_error($message, $status_code, $heading = 'An Error Was Encountered')

Parameters:    
$message (mixed) – 表示するエラー内容
$status_code (int) – HTTP レスポンスステータスコード
$heading (string) – エラーの見出し

Return type:    
void





試しに使ってみます。
コントローラーではこのように指定しました。


  1. <?php
  2. class Sample extends CI_Controller {
  3.     
  4.     public function index() {
  5.         
  6.         show_error('メッセージ', 404, 'ヘッダリング');
  7.     }
  8.     
  9. }




こんなエラーメッセージが表示されます。

537_01.png

ビューには、「application/views/errors/html/error_general.php」が使用されるようでした。

引数のメッセージがmixedになっていたので、試しに配列を渡してみます。


  1. <?php
  2. class Sample extends CI_Controller {
  3.     
  4.     public function index() {
  5.         
  6.         //show_error('メッセージ', 404, 'ヘッダリング');
  7.         
  8.         $messages = array('エラーが', '発生', 'しました');
  9.         show_error($messages, 404, 'ヘッダリング');
  10.     }
  11.     
  12. }





エラーメッセージが改行されて表示されました。

537_02.png





404エラーの表示



404 Not Foundエラーは専用の関数が用意されています。


show_404($page = '', $log_error = TRUE)

Parameters:    
$page (string) – URI string
$log_error (bool) – ログに出力するか

Return type:    
void





引数なしで使ってみます。


  1. <?php
  2. class Sample extends CI_Controller {
  3.     
  4.     public function index() {
  5.         
  6.         show_404();
  7.     }
  8.     
  9. }




537_03.png

application/views/errors/html/error_404.phpがビューとして使用されるようです。


第一引数のpageは、エラーログに出力するメッセージとなります。
てっきり、表示に使用するビューが変更できるものだと思いはまりました。


  1. <?php
  2. class Sample extends CI_Controller {
  3.     
  4.     public function index() {
  5.         
  6.         show_404('my_404');
  7.     }
  8.     
  9. }




application/logsフォルダにログが出力されます。


ERROR - 2015-01-28 22:33:41 --> 404 Page Not Found: my_404




第二引数はログファイルに出力するかどうかのフラグで、デフォルトTRUEです。
ログ出力したくない場合はFALSEを指定します。

ちなみに、デフォルトの状態ではログはどうやっても出力されません。
以下の手順で、configを変更します。





ログの出力について



ログファイルを出力するかどうかの設定は
「application/config.php」の「log_threshold」で指定します。


  1. $config['log_threshold'] = 0;




このように、デフォルトではログを出力しないようになっています。
値の意味はこちら。


0 = Disables logging, Error logging TURNED OFF
1 = Error Messages (including PHP errors)
2 = Debug Messages
3 = Informational Messages
4 = All Messages





  1. $config['log_threshold'] = 1;



このように指定することで、404エラーがログに出力されるようになりました。





ログをテキストに出力



ログ出力用に「log_message」という関数が用意されています。


log_message($level, $message, $php_error = FALSE)

Parameters:    
$level (string) – Log level: ‘error’, ‘debug’ or ‘info’
$message (string) – Message to log
$php_error (bool) – Whether we’re logging a native PHP error message

Return type:    
void




使ってみます。


  1. <?php
  2. class Sample extends CI_Controller {
  3.     
  4.     public function index() {
  5.         
  6.         log_message('error', 'システムエラーが発生しました');
  7.     }
  8.     
  9. }




こんなログが出力されました。


ERROR - 2015-01-28 22:44:02 --> システムエラーが発生しました







CodeIgniter 3のユーザーガイド(User Guide)まとめ
関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2015/01/28(水) 22:48:32|
  2. PHP
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<CodeIgniter 3 ページキャシュについて(General Topics - Web Page Caching) | ホーム | CodeIgniter 3 URIによるコントローラ呼び出しの分岐(General Topics - URI Routing)>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1612-3b148fb8
この記事にトラックバックする(FC2ブログユーザー)