PHP8 error_log — 發(fā)送錯誤信息到某個地方

2023-09-01 11:52 更新

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

error_log — 發(fā)送錯誤信息到某個地方

說明

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

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

參數(shù)

message

應該被記錄的錯誤信息。

message_type

設置錯誤應該發(fā)送到何處。可能的信息類型有以下幾個:

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

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

additional_headers

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

返回值 ?

成功時返回 true, 或者在失敗時返回 false。如果 message_type 是 0,此函數(shù)始終返回 true,無論是否可以記錄錯誤。

更新日志 ?

版本 說明
8.0.0 現(xiàn)在 destination 和 additional_headers 允許為 null。

示例

示例 #1 error_log() 范例

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

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

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

警告
error_log() 并非二進制安全的。null 字符可能截斷 message。
小技巧
message 不能包含 null 字符。注意,message 可能會發(fā)送到文件、郵件、syslog 等。所以在調用 error_log() 前需要使用適合的轉換/轉義函數(shù):base64_encode()、rawurlencode() 或  addslashes()。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號