PHPエラー



PHP エラーとロギングの概要

Error 関数と Logging 関数を使用すると、エラーを処理し、ログに記録できます。

Error 関数を使用すると、ユーザーはエラー処理ルールを定義し、エラーの記録方法を変更できます。

ログ機能を使用すると、ユーザーはアプリケーションのログを記録し、ログ メッセージを電子メール、システム ログ、または他のマシンに送信できます。


実行設定

error関数は、php.ini設定ファイルの影響を受けます。

エラーとログの構成オプション:

パラメータデフォルト値説明変更可能範囲
error_reportingNULL PHPのエラーレベルを設定し、現在のレベル(数値または定数)を返します。 PHP_INI_ALL
display_errors"1" このオプションは、エラー メッセージを出力の一部として画面に表示するか、ユーザーに対して非表示にするかを設定します。
注: この機能は本番環境では使用しないでください (開発およびテスト中に使用されます)
PHP_INI_ALL
display_startup_errors"0"display_errors が on に設定されている場合でも、PHP 起動プロセス中にエラー メッセージが表示されますは表示されません。デバッグ目的を除き、display_startup_errors をオフに設定することを強くお勧めします。 PHP_INI_ALL
log_errors"0" 実行中のスクリプトのエラー情報をサーバーエラーログまたはerror_logに記録するかどうかを設定します。これはサーバー固有の構成項目であることに注意してください。 PHP_INI_ALL
log_errors_max_len"1024" エラーの原因に関する情報が error_log に追加される、log_errors の最大バイト数を設定します。デフォルト値は 1024 です。0 に設定すると、長さに制限はありません。この長さの設定により、ログに記録されるエラー、表示されるエラー、および $php_errormsg が制限されます。 PHP_INI_ALL
ignore_repeat_errors"0" 繰り返される情報をログに記録しません。 ignore_repeat_source が true に設定されていない限り、エラーが繰り返される場合は、同じファイル内のコードの同じ行で発生する必要があります。 PHP_INI_ALL
ignore_repeat_source"0" 繰り返されるメッセージを無視すると、メッセージのソースも無視されます。この設定がオンの場合、重複メッセージは、別のファイルによって生成されたのか、別のソース コード行によって生成されたのかを記録しません。 PHP_INI_ALL
report_memleaks"1" このパラメータが Off に設定されている場合、メモリ リーク情報は (標準出力またはログに) 表示されません。 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 エラー メッセージの形式に設定します。 XML-RPCのfaultCode要素の値としてPHP_INI_SYSTEM
xmlrpc_error_number"0"が使用されます。 PHP_INI_ALL
docref_root"" 新しいエラー メッセージ形式には、エラーの詳細を説明する、またはエラーの原因となった関数を説明する対応するリファレンス ページが含まれています。
マニュアルページを提供するには、PHP 公式サイトから対応する言語のマニュアルをダウンロードし、ini 内の URL をローカルの対応するアドレスに設定します。
「/manual/」を使用してマニュアルのローカル コピーにアクセスできる場合は、単に docref_root=/manual/ を設定するだけで済みます。
さらに、ローカル ファイル docref_ext=.html のサフィックスと一致するように docref_ext を設定する必要もあります。もちろん、外部参照アドレスを設定することもできます。
たとえば、 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_stringNULLメッセージ。 PHP_INI_ALL
error_append_stringNULLエラーメッセージの後に出力される内容。 PHP_INI_ALL
error_logNULLスクリプトエラーが記録されるファイルを設定します。このファイルは、Web サーバー ユーザーが書き込み可能である必要があります。 PHP_INI_ALL

インストール

エラー関数とログ関数は PHP コアの一部です。これらの機能を使用するためにインストールは必要ありません。


PHP エラーとログ関数

PHP: この関数をサポートする最も古い PHP バージョンを示します。

関数説明PHP
debug_backtrace()バックトレースを生成します。 4
debug_print_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 エラーとログ定数

PHP: この定数をサポートする最も古い PHP バージョンを示します。

定数説明PHP
1E_ERROR 実行時の致命的なエラー。修正不可能なエラー。スクリプトの実行を停止します。
2E_WARNING実行時の致命的ではないエラー。スクリプトの実行は停止されません。
4E_PARSEコンパイル中の解析エラー。解析エラーはパーサーによってのみ生成される必要があります。
8E_NOTICE実行時通知。スクリプトの検出はバグである可能性がありますが、スクリプトを通常に実行しているときにも発生する可能性があります。
16E_CORE_ERRORPHP の起動時に致命的なエラーが発生しました。これは、PHP コアの E_ERROR とまったく同じです。 4
32E_CORE_WARNINGPHP 起動時の致命的ではないエラー。これは、PHP コアの E_WARNING とまったく同じです。 4
64E_COMPILE_ERRORコンパイル中に致命的なエラーが発生しました。これは、Zend スクリプト エンジンによって生成される E_ERROR とまったく同様です。 4
128E_COMPILE_WARNINGコンパイル中の致命的ではないエラー。これは、Zend スクリプト エンジンによって生成される E_WARNING に似ています。 4
256E_USER_ERRORユーザーが生成した致命的なエラー。これは、プログラマが PHP 関数trigger_error()を使用して生成する E_ERROR に似ています。 4
512E_USER_WARNINGユーザー生成の致命的ではないエラー。これは、プログラマが PHP 関数trigger_error()を使用して生成する E_WARNING に似ています。 4
1024E_USER_NOTICEユーザーが生成した通知。これは、プログラマが PHP 関数trigger_error()を使用して生成する E_NOTICE に似ています。 4
2048E_STRICT実行時通知。 PHP では、コードの相互運用性と互換性を向上させるためにコードを変更することをお勧めします。 5
4096E_RECOVERABLE_ERRORキャッチ可能な致命的なエラー。これは、ユーザー定義のハンドルで捕捉できる E_ERROR に似ています (set_error_handler() を参照)。 5
6143E_ALL E_STRICT を除くすべてのエラーおよび警告レベル (E_STRICT は PHP 6.0 以降 E_ALL の一部になります)。 5