技術(shù)頻道導(dǎo)航
HTML/CSS
.NET技術(shù)
IIS技術(shù)
PHP技術(shù)
Js/JQuery
Photoshop
Fireworks
服務(wù)器技術(shù)
操作系統(tǒng)
網(wǎng)站運(yùn)營(yíng)

贊助商

分類目錄

贊助商

最新文章

搜索

php error_log() 將錯(cuò)誤信息寫入一個(gè)文件【實(shí)例及常見問題】

作者:admin    時(shí)間:2013-6-18 17:12:6    瀏覽:

在php程序編寫中,養(yǎng)成寫入log文件的編程習(xí)慣,是一個(gè)很好的編程習(xí)慣,程序員都應(yīng)該學(xué)會(huì)這種編程思想,不要太浮躁。前期編程的不嚴(yán)謹(jǐn),往往會(huì)帶來后期維護(hù)和調(diào)式的困難,付出的時(shí)間和精力將會(huì)更多。

error_log() 是發(fā)送錯(cuò)誤信息到某個(gè)地方的一個(gè)函數(shù),在程序編程中比較常見,尤其是在程序調(diào)試階段。

本文將用實(shí)例講解一下error_log()這個(gè)函數(shù)的用法,以及一些需要注意的問題。

實(shí)例

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

上述是最常用的error_log()例子,它的作用是把一條信息寫入errors.log這個(gè)文件里,這個(gè)文件如果不存在則自動(dòng)創(chuàng)建。在這個(gè)例子中,我們看到有一個(gè)參數(shù)“3”,注意這個(gè)數(shù)字“3”不能更改也不能去掉。

error_log()可能出現(xiàn)的問題

◆問題一:

Warning: error_log() [function.error-log]: failed to open stream: Permission denied in ...on line ...

上述錯(cuò)誤的出現(xiàn),是因?yàn)槲募]有寫權(quán)限,開啟該目錄的文件寫權(quán)限即可。

◆問題二:

log文件為什么不能換行?

使用error_log()寫入log文件,會(huì)發(fā)現(xiàn)文字是沒有換行的,這給閱讀帶來很大的困難,需要改進(jìn)下。經(jīng)研究,使用如下代碼,可以寫入換行的信息。

<?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è)寫法是不同的。

知識(shí)擴(kuò)充

下面補(bǔ)充error_log()函數(shù)的使用知識(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。

標(biāo)簽: log  
x
  • 站長(zhǎng)推薦
/* 左側(cè)顯示文章內(nèi)容目錄 */