error_log

(PHP 4, PHP 5, PHP 7, PHP 8)

error_log定義されたエラー処理ルーチンにエラーメッセージを送信する

説明

error_log(
    string $message,
    int $message_type = 0,
    ?string $destination = null,
    ?string $additional_headers = null
): bool

エラーメッセージを Web サーバーのエラーログあるいはファイルに送ります。

パラメータ

message

ログに記録されるエラーメッセージ。

message_type

メッセージをどこに送るのかを指定します。以下の中から指定できます。

error_log() ログタイプ
0 message は PHP のシステムロガーに送られ、 設定ディレクティブ error_log の値に応じて、 オペレーティングシステムのシステムログ機構を使って保存されるか、 ファイルに保存されるかが決まります。 これがデフォルトのオプションです。
1 message は、destination パラメータで指定されたアドレスに、電子メール により送られます。このメッセージタイプの場合にのみ、 4 番目のパラメータである additional_headers が使われます。
2 このオプションは存在しません。
3 messagedestination で指定されたファイルに追加されます。 明示的に指定しない限り、message の 最後には改行文字は追加されません。
4 message は、直接 SAPI のログ出力ハンドラに送信されます。

destination

メッセージの送信先。その設定は、上で説明している message_type パラメータの値によります。

additional_headers

追加のヘッダ。message_type パラメータが 1 に設定される場合に利用されます。 このメッセージタイプは、mail() と同様に 内部関数を利用します。

戻り値

成功した場合に true を、失敗した場合に false を返します。 message_type が0の場合、 エラーがロギング出来たかそうでないかに関わらず、この関数は常に true を返します。

変更履歴

バージョン 説明
8.0.0 destinationadditional_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() に渡す必要があります。

関連キーワード:  エラー, エラーメッセージ, 処理, 送信, 定義, ルーチン, type, destination, パラメータ, メッセージ