PHP記錄和讀取JSON格式日誌檔案

2022-07-19 10:24:15 字數 1446 閱讀 7849

我們講的php記錄日誌,就是將日誌資訊寫入到乙個日誌檔案中,區別於記憶體日誌。寫入日誌的流程是:開啟日誌檔案(如果不存在則新建立),然後將日誌內容追加到日誌檔案的後面,最後關閉日誌檔案。

本文中,我們將日誌內容以json個格式儲存,方便必要時直接讀取。

實際執行中,我們有可能會遇到日誌檔案超大的情況,所以我們設定乙個最大值,當日誌檔案大小超過這個最大值時,將此日誌檔案備份好,然後重新生成乙個新的日誌檔案來記錄新的日誌內容。

在寫日誌前,我們將日誌內容進行json格式化,所以需要將內容轉化成json格式,然後寫入檔案。當然你也可以不用json,或者換作別的工具程式(如日誌分析工具)可以閱讀的格式。總之,我們寫入的內容是方便必要時可以方便讀取。

function writelog($filename,$msg) 

//如果是新建的日誌檔案,去掉內容中的第乙個字元逗號

if(file_exists($filename) && abs(filesize($filename))>0)else

//往日誌檔案內容後面追加日誌內容

}

php讀日誌檔案

必要時,我們會讀取日誌內容進行分析,同樣我們使用php的file_get_contents()函式,直接將內容讀取,並且轉換成json格式,方便呼叫。

function readlog($filename)else'; 

} return $json;

}

日誌寫入和讀取類

寫入和讀取日誌的功能我們經常要用到,所以我將寫入和讀取功能整理成類,方便呼叫。

<?php 

/* * 日誌類

* 每天生成乙個日誌檔案,當檔案超過指定大小則備份日誌檔案並重新生成新的日誌檔案

*/ class log

//如果是新建的日誌檔案,去掉內容中的第乙個字元逗號

if(file_exists($filename) && abs(filesize($filename))>0)else

//往日誌檔案內容後面追加日誌內容

} //讀取日誌

public function readlog($filename)else';

} return $json;

} }

?>

使用方法:

$filename = "logs/log_".date("ymd",time()).".txt"; 

$msg = '寫入了日誌';

$log = new log(); //例項化

$log->writelog($filename,$msg); //寫入日誌

$loglist = $log->readlog($filename); //讀取日誌

PHP記錄和讀取JSON格式日誌檔案

我們有時需要記錄使用者或者後端的某個操作事件的運 況,可以使用後端語言如php將操作結果記錄到日誌檔案中,方便測試和查詢問題。尤其是這些在後端執行的而前端不能直接看到執行結果的,那麼就可以用日誌檔案記錄下來,如果你經常跟一些介面開發如支付寶介面 微信卡券介面打交道的話,日誌記錄就必不可少了。我們講的...

php讀取本地json檔案

1.data.json檔案 2.php檔案 echo 獲取頁面傳來的引數 type get type proid get id echo type.產品type echo proid.產品id 從檔案中讀取資料到php變數 json string file get contents json dat...

PHP檢測json格式資料

首先要記住json encode返回的是字串,而json decode返回的是物件 判斷資料不是json格式 複製 如下 function is not json str 判斷資料是合法的json資料 php版本大於5.3 複製 如下 function is json string json las...