在php程序編寫中,養成寫入log文件的編程習慣,是一個很好的編程習慣,程序員都應該學會這種編程思想,不要太浮躁。前期編程沒有日志記錄,往往會帶來后期維護和調式的困難,付出的時間和精力將會更多。
error_log()是發送錯誤信息到某個地方的一個html' target='_blank'>PHP函數,在程序編程中比較常見,尤其是在程序調試階段。
本文將用實例講解一下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 ...
上述錯誤的出現,是因為文件沒有寫權限,開啟該目錄的文件寫權限即可。
(3)寫入到log文件中的信息不能換行
使用error_log()寫入log文件,會發現文字是沒有換行的,可以對以上代碼做如下改進:
<?php$str="這是條錯誤信息。/r/n";error_log($str,3,'errors.log');?>
注意$str,用的是雙引號(php單引號和雙引號的區別),還在字符串結尾加上了/r/n。這跟第一個實例那個寫法是不同的。
通過 PHP手冊,我們可以知道,該函數可以向服務器、文件或遠程目標發送一個錯誤日志。
它接受四個參數:
1、message:必需。要記錄的錯誤消息。
2、message_type:可選。規定錯誤記錄的類型。
可能的記錄類型:
0 – 默認。根據在php.ini 文件中的error_log配置,錯誤被發送到服務器日志系統或文件。
1 – 錯誤被發送到destination參數中的郵件地址。只有該類型使用 headers 參數。
例如:error_log("this is a test string",1,"admin@4u4v.net","From:4u4v@163.com");
2 – 通過PHP debugging 連接來發送錯誤。該選項只在 PHP 3 中可用。
3 – 錯誤發送到指定文件中。
示例:error_log("this is a test string",3,"/home/www/log/error_log");
3、destination:可選。規定向何處發送錯誤消息。該參數的值依賴于 “type” 參數的值。
4、extra_headers:可選。只在 “type” 為 1 時使用。
規定附加的頭部,比如 From, Cc 以及 Bcc。由 CRLF (/r/n) 分隔。
注釋:在發送電子郵件時,必須包含 From 頭部??梢栽趐hp.ini文件中或者通過此參數設置。
PHP編程鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答