error_log

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

error_log發(fā)送錯(cuò)誤信息到某個(gè)地方

說(shuō)明

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

把錯(cuò)誤信息發(fā)送到 web 服務(wù)器的錯(cuò)誤日志,或者到一個(gè)文件里。

參數(shù)

message

應(yīng)該被記錄的錯(cuò)誤信息。

message_type

設(shè)置錯(cuò)誤應(yīng)該發(fā)送到何處??赡艿男畔㈩愋陀幸韵聨讉€(gè):

error_log() 日志類型
0 message 發(fā)送到 PHP 的系統(tǒng)日志,使用 操作系統(tǒng)的日志機(jī)制或者一個(gè)文件,取決于 error_log 指令設(shè)置了什么。 這是個(gè)默認(rèn)的選項(xiàng)。
1 message 發(fā)送到參數(shù) destination 設(shè)置的郵件地址。 第四個(gè)參數(shù) extra_headers 只有在這個(gè)類型里才會(huì)被用到。
2 不再是一個(gè)選項(xiàng)。
3 message 被發(fā)送到位置為 destination 的文件里。 字符 message 不會(huì)默認(rèn)被當(dāng)做新的一行。
4 message 直接發(fā)送到 SAPI 的日志處理程序中。

destination

目標(biāo)。它的含義描述于以上,由 message_type 參數(shù)所決定。

extra_headers

額外的頭。當(dāng) message_type 設(shè)置為 1 的時(shí)候使用。 該信息類型使用了 mail() 的同一個(gè)內(nèi)置函數(shù)。

返回值

成功時(shí)返回 true, 或者在失敗時(shí)返回 false。

注釋

警告

error_log() 并非二進(jìn)制安全的。null 字符可能截?cái)?message。

小技巧

message 不能包含 null 字符。 注意,message 可能會(huì)發(fā)送到文件、郵件、syslog 等。 所以在調(diào)用 error_log() 前需要使用適合的轉(zhuǎn)換/轉(zhuǎn)義函數(shù): base64_encode()、 rawurlencode()addslashes()

范例

示例 #1 error_log() 范例

<?php
// 如果無(wú)法連接到數(shù)據(jù)庫(kù),發(fā)送通知到服務(wù)器日志
if (!Ora_Logon($username$password)) {
    
error_log("Oracle database not available!"0);
}

// 如果用盡了 FOO,通過(guò)郵件通知管理員
if (!($foo allocate_new_foo())) {
    
error_log("Big trouble, we're all out of FOOs!"1,
               
"operator@example.com");
}

// 調(diào)用 error_log() 的另一種方式:
error_log("You messed up!"3"/var/tmp/my-errors.log");
?>

更新日志

版本 說(shuō)明
5.2.7 可能的值:4添加到了 message_type。