PHPエラー
PHP エラーとロギングの概要
Error 関数と Logging 関数を使用すると、エラーを処理し、ログに記録できます。
Error 関数を使用すると、ユーザーはエラー処理ルールを定義し、エラーの記録方法を変更できます。
ログ機能を使用すると、ユーザーはアプリケーションのログを記録し、ログ メッセージを電子メール、システム ログ、または他のマシンに送信できます。
実行設定
error関数は、php.ini設定ファイルの影響を受けます。
エラーとログの構成オプション:
パラメータ | デフォルト値 | 説明 | 変更可能範囲 |
---|---|---|---|
error_reporting | NULL | 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_string | NULL | メッセージ。 | PHP_INI_ALL |
error_append_string | NULL | エラーメッセージの後に出力される内容。 | PHP_INI_ALL |
error_log | NULL | スクリプトエラーが記録されるファイルを設定します。このファイルは、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 |
---|---|---|---|
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 を除くすべてのエラーおよび警告レベル (E_STRICT は PHP 6.0 以降 E_ALL の一部になります)。 | 5 |