PHP Error および Logging関数
PHP Error および Logging の概要
Error および Logging 関数を使用すると、エラーの処理と記録を行うことができます。
Error 関数を使用すると、ユーザーはエラー処理ルールを定義し、エラーを記録する方法を変更できます。
Logging 関数を使用すると、ユーザーはアプリケーションのログ記録を行い、ログメッセージを電子メール、システムログ、または他のマシンに送信できます。
実行時設定
error 関数は php.ini 構成ファイルの影響を受けます。
エラーおよびログ構成オプション:
| パラメータ | デフォルト値 | 説明 | 変更可能な範囲 |
|---|---|---|---|
| error_reporting | NULL | PHP のエラーレベルを設定し、現在のレベル(数値または定数)を返します。 | 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" | このパラメータが Off に設定されている場合、メモリリーク情報は表示されません (stdout またはログ内で)。 | PHP_INI_ALL |
| track_errors | "0" | オンにすると、最後のエラーが常に変数 $php_errormsg に格納されます。 | PHP_INI_ALL |
| html_errors | "1" | エラー情報内の HTML タグを無効にします。 | PHP_INI_ALL PHP_INI_SYSTEM in PHP <= 4.2.3. |
| xmlrpc_errors | "0" | 通常のエラー報告を無効にし、エラーの形式を XML-RPC エラー情報の形式に設定します。 | PHP_INI_SYSTEM |
| xmlrpc_error_number | "0" | XML-RPC faultCode 要素の値として使用されます。 | PHP_INI_ALL |
| docref_root | "" | 新しいエラー情報形式には、エラーを具体的に説明するか、エラーの原因となった関数を説明する、対応するリファレンスページが含まれます。 マニュアルのページを提供するには、PHP 公式サイトから対応する言語のマニュアルをダウンロードし、ini で URL をローカルの対応するアドレスに設定できます。 ローカルのマニュアルのコピーに "/manual/" でアクセスできる場合は、docref_root=/manual/ と簡単に設定できます。 さらに、docref_ext をローカルファイルの拡張子に一致するように設定する必要があります (docref_ext=.html)。もちろん、外部のリファレンスアドレスを設定することもできます。 たとえば、docref_root=http://manual/en/ または docref_root="http://landonize.it/?how=url&theme=classic&filter=Landon &url=http%3A%2F%2Fwww.php.net%2F" を設定できます。 |
PHP_INI_ALL |
| docref_ext | "" | docref_root を参照してください。 | PHP_INI_ALL |
| error_prepend_string | NULL | エラー情報の前に出力される内容。 | PHP_INI_ALL |
| error_append_string | NULL | エラー情報の後に出力される内容。 | PHP_INI_ALL |
| error_log | NULL | スクリプトエラーが記録されるファイルを設定します。このファイルは Web サーバーユーザーが書き込み可能である必要があります。 | PHP_INI_ALL |
インストール
Error および Logging 関数は PHP コアの構成要素です。インストールせずにこれらの関数を使用できます。
PHP Error および Logging 関数
PHP:この関数をサポートする最初の PHP バージョンを示します。
| 関数 | 説明 | PHP |
|---|---|---|
| debug_backtrace() | backtrace を生成します。 | 4 |
| debug_print_backtrace() | backtrace を出力します。 | 5 |
| error_get_last() | 最後に発生したエラーを取得します。 | 5 |
| error_log() | サーバーのエラーログ、ファイル、またはリモートターゲットにエラーを送信します。 | 4 |
| error_reporting() | どのエラーを報告するかを指定します。 | 4 |
| restore_error_handler() | 以前のエラーハンドラを復元します。 | 4 |
| restore_exception_handler() | 以前の例外ハンドラを復元します。 | 5 |
| set_error_handler() | ユーザー定義のエラー処理関数を設定します。 | 4 |
| set_exception_handler() | ユーザー定義の例外処理関数を設定します。 | 5 |
| trigger_error() | ユーザー定義のエラーメッセージを作成します。 | 4 |
| user_error() | trigger_error() のエイリアス。 | 4 |
PHP Error および Logging 定数
PHP:この定数をサポートする最初の PHP バージョンを示します。
| 值 | 定数 | 説明 | PHP |
|---|---|---|---|
| 1 | E_ERROR | 実行時の致命的なエラー。修復できないエラー。スクリプトの実行を停止します。 | |
| 2 | E_WARNING | 実行時の非致命的なエラー。スクリプトの実行を停止しません。 | |
| 4 | E_PARSE | コンパイル時の解析エラー。解析エラーはパーサーによってのみ生成されるべきです。 | |
| 8 | E_NOTICE | 実行時の通知。スクリプトがエラーの可能性を発見しましたが、スクリプトが正常に実行されているときにも発生する可能性があります。 | |
| 16 | E_CORE_ERROR | PHP 起動時の致命的なエラー。これは PHP コアの E_ERROR と同じです。 | 4 |
| 32 | E_CORE_WARNING | PHP 起動時の非致命的なエラー。これは PHP コアの E_WARNING と同じです。 | 4 |
| 64 | E_COMPILE_ERROR | コンパイル時の致命的なエラー。これは Zend スクリプトエンジンによって生成される E_ERROR と同じです。 | 4 |
| 128 | E_COMPILE_WARNING | コンパイル時の非致命的なエラー。これは Zend スクリプトエンジンによって生成される E_WARNING と同じです。 | 4 |
| 256 | E_USER_ERROR | ユーザー生成の致命的なエラー。これはプログラマーが PHP 関数 trigger_error() を使用して生成する E_ERROR と同じです。 | 4 |
| 512 | E_USER_WARNING | ユーザー生成の非致命的なエラー。これはプログラマーが PHP 関数 trigger_error() を使用して生成する E_WARNING と同じです。 | 4 |
| 1024 | E_USER_NOTICE | ユーザー生成の通知。これはプログラマーが PHP 関数 trigger_error() を使用して生成する E_NOTICE と同じです。 | 4 |
| 2048 | E_STRICT | 実行時の通知。PHP は、コードの相互運用性と互換性を向上させるためにコードを変更することを推奨します。 | 5 |
| 4096 | E_RECOVERABLE_ERROR | 捕捉可能な致命的なエラー。これはユーザー定義のハンドラで捕捉できる E_ERROR と同じです (set_error_handler() を参照)。 | 5 |
| 6143 | E_ALL | すべてのエラーと警告のレベル。ただし E_STRICT を除きます (PHP 6.0 以降、E_STRICT は E_ALL の一部になります)。 | 5 |