error_log() 関数は、エラー メッセージをサーバー エラー ログ、ファイル、またはリモート ターゲットに送信します。構文
error_log(message,type,destination,headers);
パラメータ | 説明 |
---|---|
メッセージ | が必要です。ログに記録するエラー メッセージを指定します。 |
タイプ | はオプションです。エラーを送信する場所を指定します。可能な値:
|
目的地 | オプション。エラーメッセージの送信先を指定します。この値は、type パラメータの値によって決まります。 |
ヘッダー | はオプションです。 From、Cc、Bcc などの追加ヘッダーを指定します。このメッセージ タイプは、mail() と同じ組み込み関数を使用します。 message_typeが 1 に設定されている場合にのみ使用されます。 CRLF (rn) は、複数のヘッダーを区切るために使用する必要があります。 |
実際、私たちにとって、簡単にするために、ログにはタイプ 3 を直接使用し、必要なファイルにログ ファイルを書き込む方が一般的により適切です。
error_log() 関数の簡単な使用法を説明するために、例を見てみましょう。データベース 抽象クラス が PEAR::DB クラスを使用していると仮定します。次に、プログラムに実行エラーがあるかどうかを記録したいと思います。次に、error_log() を使用して SQL ステートメントの実行エラーまたは失敗を記録します。少なくとも PEAR::DB クラスには、実行結果オブジェクトにエラーがあるかどうかを取得する DB::isError() メソッドが用意されています。特定の SQL ステートメントの実行中にエラーが発生したかどうかを判断し、同時に、オブジェクトに間違った SQL ステートメントを記録する userinfo 属性がある場合、次のような関数を構築できます。
function logError($object) { if(DB::isError($object)) { error_log(date("[Y-m-d H:i:s]")." -[".$_SERVER['REQUEST_URI']."] :".$object -> userinfo."\n", 3, "/tmp/php_sql_err.log"); return true; } return false; }
この関数は、間違った SQL が見つかった場合、時刻、現在のページ、および間違った SQL ステートメントの情報を /tmp/php_sql_err.log ファイルに自動的に記録します。その後、プログラムのデバッグ時に、データ抽出が正しくない場合、またはデータ抽出がない場合は、/tmp/php_sql_err.log ファイルを表示して、エラー ページと間違った SQL ステートメントを確認できます。
もちろん、SQL クエリを実行するプログラムでこの関数を使用する必要があります。たとえば、ニュース情報を抽出する関数を作成する場合:
function getNewsContent($news_id, $field="") { global $db; $result = $db->getRow("SELECT $field FROM news WHERE news_id = '$news_id'"); if (logError($result)) { return false; } return $result; }
SQL が間違っているかどうかを判断し、間違っている場合は戻ります。 false の場合、ログをチェックして、関数が期待どおりに実行されるかどうかを確認できます。
以下を実行します: tail /tmp/php_sql_err.log
次のような情報が表示されます:
[2006-01-12 11:44:34] -[/news_list.php?news_id=1] :SELECT FROM news WHERE news_id = '1' [nativecode=1064 ** SQL 構文にエラーがあります。'FROM news WHERE news_id = '1' ] 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
単体テスト を実行できるようになります。
もちろん、error_log() 関数を使用して、PHP 開発を容易にするためにより多くのエラー ログを記録することもできます。これはすべてあなた次第です。
<code> $address = post('address'); $group_add = explode(',',$address); $url ="/usr/local/apache/eyoung/tmp/maillog_".date("Y-m-d").".log"; foreach($group_add as $value) { /** {{{ modify by muzhaoyang -2006.12.13- 记log * 已空格分隔数据,记录的数据为写文本时间 拉票人ID 选手ID 发信地址 */ $logstr=date("H:i:s")." ".$uid." ".$star_uid." ".$value."\n"; error_log($logstr,3,$url); //}}} } </code>
以上がphp error_log() 関数の使用法についての詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。