本篇文章給大家帶來的內容是關於PHP如何封裝列印日誌的方法(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所協助。
最近項目上線出現了問題,大量使用者正在使用,找了半天原因,最終還是依靠列印列印記錄檔,找到了錯誤出現的位置!所以,開發過程中,對可能出現錯誤的地方,列印日誌是非常非常重要的一件事情!下面我就來詳細講下!
1、用到的函數file_put_contents()
file_put_contents() 函數把一個字串寫入檔案中。
該函數訪問檔案時,遵循以下規則:
如果設定了 FILE_USE_INCLUDE_PATH,那麼將檢查 *filename* 副本的內建路徑
如果檔案不存在,將建立一個檔案
開啟檔案
如果設定了 LOCK_EX,那麼將鎖定檔案
如果設定了 FILE_APPEND,那麼將移至檔案末尾。否則,將會清除檔案的內容
向檔案中寫入資料
關閉檔案並對所有檔案解鎖
如果成功,該函數將返回寫入檔案中的字元數。如果失敗,則返回 False。
文法
int file_put_contents ( string $filename , mixed $data [, int $flags = 0 [, resource $context ]] )
參數 |
描述 |
file |
必需。規定要寫入資料的檔案。如果檔案不存在,則建立一個新檔案。 |
data |
必需。規定要寫入檔案的資料。可以是字串、數組或資料流。 |
mode |
可選。規定如何開啟/寫入檔案。可能的值:
FILE_USE_INCLUDE_PATH
FILE_APPEND
LOCK_EX
|
context |
可選。規定檔案控制代碼的環境。context 是一套可以修改流的行為的選項。 |
2、封裝記錄檔makeLog()方法
<?php/** * 聲明檔案日誌 * @param string $type * @param string $data */public function makeLog($type='',$data=''){ if(!empty($type)){ // 'DIR_LOG'=>'/home/www/ymd/public/ymd/logs/' @file_put_contents(C('DIR_LOG').$type."/".$type.'_'.date('YmdH').'.txt',$data."\n",FILE_APPEND); }}//調用檔案日誌 $this->makeLog('ymd','日誌記錄');