溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么在PHP中使用error_log()函數(shù)將錯誤信息寫入一個文件

發(fā)布時間:2021-04-02 14:46:13 來源:億速云 閱讀:156 作者:Leah 欄目:開發(fā)技術(shù)

怎么在PHP中使用error_log()函數(shù)將錯誤信息寫入一個文件?針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

error_log() 是發(fā)送錯誤信息到某個地方的一個函數(shù),在程序編程中比較常見,尤其是在程序調(diào)試階段。
本文將用實例講解一下error_log()這個函數(shù)的用法,以及一些需要注意的問題。

復(fù)制代碼 代碼如下:


<?php
$str='這是條錯誤信息。';
error_log($str,3,'errors.log');
?>


上述是最常用的error_log()例子,它的作用是把一條信息寫入errors.log這個文件里,這個文件如果不存在則自動創(chuàng)建。在這個例子中,我們看到有一個參數(shù)“3”,注意這個數(shù)字“3”不能更改也不能去掉。
下面列舉一下使用error_log()這個函數(shù)的過程中可能出現(xiàn)的問題:
(1)程序報錯提示:Warning: error_log() [function.error-log]: failed to open stream: Permission denied in ...on line ...
上述錯誤的出現(xiàn),是因為文件沒有寫權(quán)限,開啟該目錄的文件寫權(quán)限即可。
(2)寫入到log文件中的信息不能換行
使用error_log()寫入log文件,會發(fā)現(xiàn)文字是沒有換行的,可以對以上代碼做如下改進:

復(fù)制代碼 代碼如下:


<?php
$str="這是條錯誤信息。\r\n";
error_log($str,3,'errors.log');
?>


注意$str,用的是雙引號(php單引號和雙引號的區(qū)別),還在字符串結(jié)尾加上了\r\n。這跟第一個實例那個寫法是不同的。
下面對error_log()函數(shù)做一些介紹
格式
bool error_log ( string $message [, int $message_type=0 [, string $destination [, string $extra_headers ]]] )
把錯誤信息發(fā)送到 web 服務(wù)器的錯誤日志,或者到一個文件里。
message     應(yīng)該被記錄的錯誤信息。
message_type
設(shè)置錯誤應(yīng)該發(fā)送到何處。使用 操作系統(tǒng)的日志機制或者一個文件,取決于 error_log 指令設(shè)置了什么。可能的信息類型有以下幾個:
 0 message 發(fā)送到 PHP 的系統(tǒng)日志。 這是個默認(rèn)的選項。iis服務(wù)器運行調(diào)試php程序錯誤信息生成log文件在哪里。
 1 message 發(fā)送到參數(shù) destination 設(shè)置的郵件地址。 第四個參數(shù) extra_headers 只有在這個類型里才會被用到。
 2 不再是一個選項。
 3 message 被發(fā)送到位置為 destination 的文件里。 字符 message 不會默認(rèn)被當(dāng)做新的一行,而是追加到行末。
 4 message 直接發(fā)送到 SAPI 的日志處理程序中。
destination 目標(biāo)。它的含義描述于以上,由 message_type 參數(shù)所決定。
extra_headers 額外的頭。當(dāng) message_type 設(shè)置為 1 的時候使用。 該信息類型使用了 mail() 的同一個內(nèi)置函數(shù)。

返回值   成功時返回 TRUE, 或者在失敗時返回 FALSE。

再來個例子

復(fù)制代碼 代碼如下:


發(fā)送一封帶有自定義錯誤的電子郵件:
<?php
$test=2; if ($test>1) {
error_log("A custom error has been triggered", 1,"someone@example.com","From: webmaster@example.com");
}
?>


輸出:
A custom error has been triggered

關(guān)于怎么在PHP中使用error_log()函數(shù)將錯誤信息寫入一個文件問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI