php中錯誤記錄檔函數error_log用法詳解

來源:互聯網
上載者:User
在php程式編寫中,養成寫入log檔案的編程習慣,是一個很好的編程習慣,程式員都應該學會這種編程思想,不要太浮躁。前期編程的不嚴謹,往往會帶來後期維護和調式的困難,付出的時間和精力將會更多。

error_log() 是發送錯誤資訊到某個地方的一個函數,在程式編程中比較常見,尤其是在程式調試階段。本文將用執行個體講解一下error_log()這個函數的用法,以及一些需要注意的問題。

$str='這是條錯誤資訊。';
error_log($str,3,'errors.log');

?>

上述是最常用的error_log()例子,它的作用是把一條資訊寫入errors.log這個檔案裡,這個檔案如果不存在則自動建立。在這個例子中,我們看到有一個參數“3”,注意這個數字“3”不能更改也不能去掉。下面列舉一下使用error_log()這個函數的過程中可能出現的問題:

(1)程式報錯提示:Warning: error_log() [function.error-log]: failed to open stream: Permission denied in ...on line ...上述錯誤的出現,是因為檔案沒有寫入權限,開啟該目錄的檔案寫入權限即可。

(3)寫入到log檔案中的資訊不能換行使用error_log()寫入log檔案,會發現文字是沒有換行的,可以對以上代碼做如下改進:

$str="這是條錯誤資訊。\r\n";
error_log($str,3,'errors.log');

?>

注意$str,用的是雙引號(php單引號和雙引號的區別),還在字串結尾加上了\r\n。這跟第一個執行個體那個寫法是不同的。

下面對error_log()函數做一些介紹格式

bool error_log ( string $message [, int $message_type=0 [, string $destination [, string $extra_headers ]]] )把錯誤資訊發送到 網頁伺服器的錯誤記錄檔,或者到一個檔案裡。

message應該被記錄的錯誤資訊。

message_type設定錯誤應該發送到何處。使用 作業系統的日誌機制或者一個檔案,取決於 error_log 指令設定了什麼。可能的資訊類型有以下幾個:

0 message 發送到 PHP 的系統日誌。 這是個預設的選項。iis伺服器運行調試php程式錯誤資訊產生log檔案在哪裡。1 message 發送到參數 destination 設定的郵件地址。 第四個參數 extra_headers 只有在這個類型裡才會被用到。

2 不再是一個選項。

3 message 被發送到位置為 destination 的檔案裡。 字元 message 不會預設被當做新的一行,而是追加到行末。

4 message 直接發送到 SAPI 的Tlog程式中。destination 目標。它的含義描述於以上,由 message_type 參數所決定。extra_headers 額外的頭。當 message_type 設定為 1 的時候使用。 該資訊類型使用了 mail() 的同一個內建函數。傳回值成功時返回 TRUE, 或者在失敗時返回 FALSE。
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.