PHP error_log()將錯(cuò)誤信息寫(xiě)入一個(gè)文件(定義和用法)
在php程序編寫(xiě)中,養(yǎng)成寫(xiě)入log文件的編程習(xí)慣,是一個(gè)很好的編程習(xí)慣,程序員都應(yīng)該學(xué)會(huì)這種編程思想,不要太浮躁。前期編程的不嚴(yán)謹(jǐn),往往會(huì)帶來(lái)后期維護(hù)和調(diào)式的困難,付出的時(shí)間和精力將會(huì)更多。
error_log() 是發(fā)送錯(cuò)誤信息到某個(gè)地方的一個(gè)函數(shù),在程序編程中比較常見(jiàn),尤其是在程序調(diào)試階段。
本文將用實(shí)例講解一下error_log()這個(gè)函數(shù)的用法,以及一些需要注意的問(wèn)題。
<?php
$str='這是條錯(cuò)誤信息。';
error_log($str,3,'errors.log');
?>
上述是最常用的error_log()例子,它的作用是把一條信息寫(xiě)入errors.log這個(gè)文件里,這個(gè)文件如果不存在則自動(dòng)創(chuàng)建。在這個(gè)例子中,我們看到有一個(gè)參數(shù)“3”,注意這個(gè)數(shù)字“3”不能更改也不能去掉。
下面列舉一下使用error_log()這個(gè)函數(shù)的過(guò)程中可能出現(xiàn)的問(wèn)題:
(1)程序報(bào)錯(cuò)提示:Warning: error_log() [function.error-log]: failed to open stream: Permission denied in ...on line ...
上述錯(cuò)誤的出現(xiàn),是因?yàn)槲募](méi)有寫(xiě)權(quán)限,開(kāi)啟該目錄的文件寫(xiě)權(quán)限即可。
(2)寫(xiě)入到log文件中的信息不能換行
使用error_log()寫(xiě)入log文件,會(huì)發(fā)現(xiàn)文字是沒(méi)有換行的,可以對(duì)以上代碼做如下改進(jìn):
<?php
$str="這是條錯(cuò)誤信息。\r\n";
error_log($str,3,'errors.log');
?>
注意$str,用的是雙引號(hào)(php單引號(hào)和雙引號(hào)的區(qū)別),還在字符串結(jié)尾加上了\r\n。這跟第一個(gè)實(shí)例那個(gè)寫(xiě)法是不同的。
下面對(duì)error_log()函數(shù)做一些介紹
格式
bool error_log ( string $message [, int $message_type=0 [, string $destination [, string $extra_headers ]]] )
把錯(cuò)誤信息發(fā)送到 web 服務(wù)器的錯(cuò)誤日志,或者到一個(gè)文件里。
message 應(yīng)該被記錄的錯(cuò)誤信息。
message_type
設(shè)置錯(cuò)誤應(yīng)該發(fā)送到何處。使用 操作系統(tǒng)的日志機(jī)制或者一個(gè)文件,取決于 error_log 指令設(shè)置了什么。可能的信息類型有以下幾個(gè):
0 message 發(fā)送到 PHP 的系統(tǒng)日志。 這是個(gè)默認(rèn)的選項(xiàng)。iis服務(wù)器運(yùn)行調(diào)試php程序錯(cuò)誤信息生成log文件在哪里。
1 message 發(fā)送到參數(shù) destination 設(shè)置的郵件地址。 第四個(gè)參數(shù) extra_headers 只有在這個(gè)類型里才會(huì)被用到。
2 不再是一個(gè)選項(xiàng)。
3 message 被發(fā)送到位置為 destination 的文件里。 字符 message 不會(huì)默認(rèn)被當(dāng)做新的一行,而是追加到行末。
4 message 直接發(fā)送到 SAPI 的日志處理程序中。
destination 目標(biāo)。它的含義描述于以上,由 message_type 參數(shù)所決定。
extra_headers 額外的頭。當(dāng) message_type 設(shè)置為 1 的時(shí)候使用。 該信息類型使用了 mail() 的同一個(gè)內(nèi)置函數(shù)。
返回值 成功時(shí)返回 TRUE, 或者在失敗時(shí)返回 FALSE。
再來(lái)個(gè)例子
發(fā)送一封帶有自定義錯(cuò)誤的電子郵件:
<?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
- php實(shí)現(xiàn)的簡(jiǎn)單日志寫(xiě)入函數(shù)
- PHP調(diào)試函數(shù)和日志記錄函數(shù)分享
- php基于自定義函數(shù)記錄log日志方法
- PHP 日志縮略名的創(chuàng)建函數(shù)代碼
- php error_log 函數(shù)的使用
- PHP中error_log()函數(shù)的使用方法
- PHP Error與Logging函數(shù)的深入理解
- 記錄PHP錯(cuò)誤日志 display_errors與log_errors的區(qū)別
- PHP中error_reporting()函數(shù)的用法(修改PHP屏蔽錯(cuò)誤)
- PHP函數(shù)之error_reporting(E_ALL ^ E_NOTICE)詳細(xì)說(shuō)明
- PHP中set error handler函數(shù)用法小結(jié)
- php日志函數(shù)error_log用法實(shí)例分析
相關(guān)文章
PHP的時(shí)間戳與具體時(shí)間轉(zhuǎn)化的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇PHP的時(shí)間戳與具體時(shí)間轉(zhuǎn)化的簡(jiǎn)單實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-06-06php使用ftp遠(yuǎn)程上傳文件類(完美解決主從文件同步問(wèn)題的方法)
下面小編就為大家?guī)?lái)一篇php使用ftp遠(yuǎn)程上傳文件類(完美解決主從文件同步問(wèn)題的方法)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-09-09php實(shí)現(xiàn)在服務(wù)器上創(chuàng)建目錄的方法
這篇文章主要介紹了php實(shí)現(xiàn)在服務(wù)器上創(chuàng)建目錄的方法,實(shí)例分析了php中使用mkdir函數(shù)的使用技巧,需要的朋友可以參考下2015-03-03SESSION存放在數(shù)據(jù)庫(kù)用法實(shí)例
這篇文章主要介紹了SESSION存放在數(shù)據(jù)庫(kù)用法,自定義了一個(gè)簡(jiǎn)單的針對(duì)數(shù)據(jù)操作的session類并給出了使用該類存儲(chǔ)到數(shù)據(jù)庫(kù)的相關(guān)技巧,需要的朋友可以參考下2015-08-08phpstorm斷點(diǎn)調(diào)試方法圖文詳解
這篇文章主要介紹了phpstorm斷點(diǎn)調(diào)試方法,結(jié)合圖文形式詳細(xì)分析了phpstorm斷點(diǎn)調(diào)試的基本配置方法、使用技巧與注意事項(xiàng),需要的朋友可以參考下2023-04-04php將圖片文件轉(zhuǎn)換成二進(jìn)制輸出的方法
這篇文章主要介紹了php將圖片文件轉(zhuǎn)換成二進(jìn)制輸出的方法,涉及php針對(duì)圖片文件的讀取與轉(zhuǎn)換輸出技巧,需要的朋友可以參考下2015-06-06