(PHP 4, PHP 5, PHP 7, PHP 8)
error_log — 定義されたエラー処理ルーチンにエラーメッセージを送信する
$message
,$message_type
= 0,$destination
= null
,$additional_headers
= null
エラーメッセージを Web サーバーのエラーログあるいはファイルに送ります。
message
ログに記録されるエラーメッセージ。
message_type
メッセージをどこに送るのかを指定します。以下の中から指定できます。
0 | message は PHP のシステムロガーに送られ、 設定ディレクティブ error_log の値に応じて、 オペレーティングシステムのシステムログ機構を使って保存されるか、 ファイルに保存されるかが決まります。 これがデフォルトのオプションです。 |
1 | message は、destination パラメータで指定されたアドレスに、電子メール により送られます。このメッセージタイプの場合にのみ、 4 番目のパラメータである additional_headers が使われます。 |
2 | このオプションは存在しません。 |
3 | message は destination で指定されたファイルに追加されます。 明示的に指定しない限り、message の 最後には改行文字は追加されません。 |
4 | message は、直接 SAPI のログ出力ハンドラに送信されます。 |
destination
メッセージの送信先。その設定は、上で説明している message_type
パラメータの値によります。
additional_headers
追加のヘッダ。message_type
パラメータが 1
に設定される場合に利用されます。 このメッセージタイプは、mail() と同様に 内部関数を利用します。
成功した場合に true
を、失敗した場合に false
を返します。 message_type
が0の場合、 エラーがロギング出来たかそうでないかに関わらず、この関数は常に true
を返します。
バージョン | 説明 |
---|---|
8.0.0 | destination と additional_headers は、nullable になりました。 |
例1 error_log() の例
<?php
// データベースに接続できない場合、
// サーバーログを通してエラーを通知する。
if (!Ora_Logon($username, $password)) {
error_log("オラクルのデータベースが使用できません!", 0);
}
// FOO に失敗したら、管理者に email で通知する
if (!($foo = allocate_new_foo())) {
error_log("大変です。FOO に失敗しました!", 1,
"operator@example.com");
}
// これ以外の error_log() のコール方法:
error_log("大変だ!", 3, "/var/tmp/my-errors.log");
?>
error_log() はバイナリセーフではありません。 message
に null 文字があれば、そこで切り詰められます。
message
に null 文字を含めてはいけません。 message
の送り先はファイルやメール、そして syslog などになることもあります。 base64_encode() や rawurlencode()、addslashes() などの関数で適切に変換してから error_log() に渡す必要があります。