程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP error_log()將錯誤信息寫入一個文件(定義和用法)

PHP error_log()將錯誤信息寫入一個文件(定義和用法)

編輯:PHP綜合

在php程序編寫中,養成寫入log文件的編程習慣,是一個很好的編程習慣,程序員都應該學會這種編程思想,不要太浮躁。前期編程的不嚴謹,往往會帶來後期維護和調式的困難,付出的時間和精力將會更多。
error_log() 是發送錯誤信息到某個地方的一個函數,在程序編程中比較常見,尤其是在程序調試階段。
本文將用實例講解一下error_log()這個函數的用法,以及一些需要注意的問題。
復制代碼 代碼如下:
<?php
$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 ...
上述錯誤的出現,是因為文件沒有寫權限,開啟該目錄的文件寫權限即可。
(2)寫入到log文件中的信息不能換行
使用error_log()寫入log文件,會發現文字是沒有換行的,可以對以上代碼做如下改進:
復制代碼 代碼如下:
<?php
$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 ]]] )
把錯誤信息發送到 web 服務器的錯誤日志,或者到一個文件裡。
message     應該被記錄的錯誤信息。
message_type
設置錯誤應該發送到何處。使用 操作系統的日志機制或者一個文件,取決於 error_log 指令設置了什麼。可能的信息類型有以下幾個:
 0 message 發送到 PHP 的系統日志。 這是個默認的選項。iis服務器運行調試php程序錯誤信息生成log文件在哪裡。
 1 message 發送到參數 destination 設置的郵件地址。 第四個參數 extra_headers 只有在這個類型裡才會被用到。
 2 不再是一個選項。
 3 message 被發送到位置為 destination 的文件裡。 字符 message 不會默認被當做新的一行,而是追加到行末。
 4 message 直接發送到 SAPI 的日志處理程序中。
destination 目標。它的含義描述於以上,由 message_type 參數所決定。
extra_headers 額外的頭。當 message_type 設置為 1 的時候使用。 該信息類型使用了 mail() 的同一個內置函數。

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

再來個例子
復制代碼 代碼如下:
發送一封帶有自定義錯誤的電子郵件:
<?php
$test=2; if ($test>1) {
error_log("A custom error has been triggered", 1,"[email protected]","From: [email protected]");
}
?>

輸出:
A custom error has been triggered

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved