PHP Error と Logging 関数

PHP Error 概要

ErrorおよびLogging関数は、エラーの処理と記録を行うのに許可されます。

Error関数は、エラーハンドリングルールを定義し、エラーレコーディング方法を変更するのに許可されます。

logging関数は、ユーザーがアプリケーションにログを記録し、ログメッセージを電子メール、システムログまたは他のマシンに送信するのに許可されます。

error関数は、エラーハンドリングとログ記録を完了するために使用されます。

error関数は、独自のエラーハンドリングルールを定義し、エラーレコーディング方法を変更するのに許可されます。

logging関数は、メッセージを直接他のマシン、電子メールまたはシステムログに送信するのに許可されます。

error reporting関数は、エラータイプとレベルを指定するのに許可されます。

インストール

PHP error関数はPHPのコアの一部です。インストールすることなく使用できます。

ランタイム設定

error関数の動作は php.ini での設定に影響されます。

Errorsおよびloggingの設定オプションは以下の通りです:

名称 デフォルト値 説明 変更可能範囲
error_reporting NULL エラーレポートレベル(整数または命名定数)を設定します。 PHP_INI_ALL
display_errors "1"

エラーを画面出力するか、ユーザーに隠すかを指定します。

注意:この機能はプロダクションシステムでは使用すべきではありません(開発のみサポート)

PHP_INI_ALL
display_startup_errors "0"

display_errors がオンに設定されている場合でも、PHPの起動プロセス中のエラーメッセージは表示されません。

コメント:デバッグ目的以外で display_startup_errors をオフに設定することを強くお勧めします。

PHP_INI_ALL
log_errors "0"

スクリプトの実行中のエラーメッセージをサーバーエラーログまたは error_log に記録するかどうかを設定します。

コメント:これはサーバーに関連する特定の設定項目です。

コメント:プロダクションシステムでは、ウェブサイト上に表示されるエラーメッセージをエラーログ記録するように強くお勧めします。

PHP_INI_ALL
log_errors_max_len "1024"

log_errors の最大バイト数を設定します。error_log にはエラースレッドに関する情報が追加されます。

デフォルト値は 1024、0 に設定された場合は長さに制限はありません。

記録されるエラー、表示されるエラー、および $php_errormsg には制限がかかります。

PHP_INI_ALL
ignore_repeated_errors "0"

重複のエラーメッセージが記録されるかどうかを定義します。

重複のエラーは、ignore_repeated_sourceがtrueに設定されていない場合、同じファイルの同じ行のコード上に必ず出現する必要があります。

PHP_INI_ALL
ignore_repeated_source "0"

重複のエラーメッセージが記録されるかどうかを定義します。重複メッセージを無視する場合、メッセージのソースも無視します。

この設定が有効になっている場合、重複情報は異なるファイルや異なるソースコード行から生成されたと記録されません。

PHP_INI_ALL
report_memleaks "1" このパラメータがOn(デフォルト)に設定されている場合、Zendメモリ管理器が検出したメモリリークレポートを表示します。 PHP_INI_ALL
track_errors "0" 有効化されている場合、最後のエラーは常に変数$php_errormsgに存在します。 PHP_INI_ALL
html_errors "1" エラーメッセージからHTMLタグを閉じます。
  • PHP_INI_ALL
  • PHP <= 4.2.3のPHP_INI_SYSTEM
xmlrpc_errors "0" 有効化されている場合、通常のエラーレポートを無効にし、エラーの形式をXML-RPCエラーメッセージの形式に設定します。 PHP_INI_SYSTEM
xmlrpc_error_number "0" XML-RPC faultCodeエレメントの値として使用されます。 PHP_INI_ALL
docref_root "" (PHP 4.3から利用可能) PHP_INI_ALL
docref_ext "" (PHP 4.3.2から利用可能) PHP_INI_ALL
error_prepend_string NULL エラーメッセージの前に出力される文字列を定義します。 PHP_INI_ALL
error_append_string NULL エラーメッセージの後に出力される文字列を定義します。 PHP_INI_ALL
error_log NULL

スクリプトのエラーが記録されるファイルを設定します。このファイルはウェブサーバーのユーザーが書き込める必要があります。

syslogという特別な値を使用している場合、エラーメッセージをシステムログレコーダーに送信します。

PHP_INI_ALL

PHP Error と Logging 関数

関数 説明
debug_backtrace() backtraceを生成します。
debug_print_backtrace() backtraceをプリントします。
error_get_last() 最後に発生したエラーを返します。
error_log() サーバーにエラーログ、ファイル、またはリモートのターゲットにエラーメッセージを送信します。
error_reporting() どのエラーを報告するかを定義します。
restore_error_handler() 前のエラーハンドリングプログラムを復元します。
restore_exception_handler() 前の例外処理プログラムを復元します。
set_error_handler() ユーザーカスタムのエラーハンドラを設定します。
set_exception_handler() ユーザーカスタムの例外処理関数を設定します。
trigger_error() ユーザーレベルのエラーメッセージを作成します。
user_error() trigger_error()の別名

PHP 5のプレ定義エラーやログ定数

定数 説明
1 E_ERROR 実行時の致命的なエラー。修正できないエラー。スクリプトの実行を停止します。
2 E_WARNING 実行時の非致命的なエラー。スクリプトの実行を停止しません。
4 E_PARSE コンパイル時の構文解析エラー。解析エラーは解析器のみで生成されます。
8 E_NOTICE 実行時の通知。スクリプトがエラーになる可能性がある状況を示しますが、正常に実行できるスクリプトの中にも同様の通知があります。
16 E_CORE_ERROR PHPの初期化プロセス中に発生する致命的なエラー。このエラーはE_ERRORに似ていますが、PHPエンジンのコアが生成します。
32 E_CORE_WARNING PHPの初期化プロセス中に発生する警告(致命的なエラーではありません)。E_WARNINGに似ていますが、PHPエンジンのコアが生成します。
64 E_COMPILE_ERROR 致命的なコンパイル時エラー。E_ERRORに似ていますが、Zendスクリプトエンジンが生成します。
128 E_COMPILE_WARNING コンパイル時の警告(致命的なエラーではありません)。E_WARNINGに似ていますが、Zendスクリプトエンジンが生成します。
256 E_USER_ERROR ユーザーが生成するエラーメッセージ。E_ERRORに似ていますが、ユーザーがコードでPHP関数trigger_error()を使用して生成します。
512 E_USER_WARNING ユーザーが生成する警告情報。E_WARNINGに似ていますが、ユーザーがコードでPHP関数trigger_error()を使用して生成します。
1024 E_USER_NOTICE ユーザーが生成する通知情報。E_NOTICEに似ていますが、ユーザーがコードでPHP関数trigger_error()を使用して生成します。
2048 E_STRICT PHPコードの修正提案を有効にすることで、最高の互換性と将来の互換性を確保します。
4096 E_RECOVERABLE_ERROR キャッチ可能な致命的なエラー。非常に危険なエラーが発生したことを示しますが、PHP エンジンが不安定になるまでには至っていません。 このエラーがユーザーがカスタムハンドラにキャッチされていない場合(set_error_handler() を参照)、E_ERROR として成り立ち、スクリプトの実行が中止されます。
8192 E_DEPRECATED 実行時の通知。有効化すると、将来のバージョンで正常に動作しない可能性があるコードに対して警告を出します。
16384 E_USER_DEPRECATED ユーザーが生成する警告情報。E_DEPRECATED に似ていますが、ユーザーが PHP 関数 trigger_error() をコードで使用して生成します。
32767 E_ALL E_STRICT によるすべてのエラーと警告情報(その他のすべてのエラーと警告情報を除く)。