PHP 日誌記錄功能實現

2021-09-19 10:33:31 字數 4301 閱讀 4372

此文作者的日誌是單一日誌,加數學序號擴充套件。

我現在用的是日期日誌,應用功能環境不一樣,實現的東西有些不同。

對於現在的應用程式來說,日誌的重要性是不言而喻的。很難想象沒有任何日誌記錄功能的應用程式執行在生產環境中。日誌所能提供的功能是多種多樣的,包括記錄程式執行時產生的錯誤資訊、狀態資訊、除錯資訊和執行時間資訊等。在生產環境中,日誌是查詢問題**的重要依據。應用程式執行時的產生的各種資訊,都應該通過日誌類庫來進行記錄。

廢話不多說了,附上日誌類庫的源**: 

php**  

/*** 日誌處理類

* * @since alpha 0.0.1

* @date 2014.03.04

* @author genialx

* */

class log  

/*** 單利模式

* * @since alpha 0.0.1

* @date 2014.02.04

* @author genialx

*/public

static

function get_instance()  

return self::$instance;  

}  /**

* * 日誌記錄

* * @param int $type  0 -> 記錄(thing log) / 1 -> 錯誤(error log)

* @param string $desc

* @param string $time

* * @since alpha 0.0.1

* @date 2014.02.04

* @author genialx

* */

public

function log($type,$desc,$time)  

switch($type)  

}  }  

/*** 獲取當前日誌的最新文件的字尾

* * @since alpha 0.0.1

* @date 2014.02.04

* @author genialx

*/private

function get_max_log_file_suf()  

}  }  

}  if($log_file_suf == null)  

//截斷檔案

if( file_exists($this->log_file_path . $this->log_file_pre . $log_file_suf) && filesize($this->log_file_path . $this->log_file_pre . $log_file_suf) >= $this->log_max_len)  

return

$log_file_suf;  

}     

}  return 0;  

}  /**

* 關閉檔案控制代碼

* * @since alpha 0.0.1

* @date 2014.02.04

* @author genialx

*/public

function close()  

}  

功能說明:

該日誌類利用單例模式,節省資源。自行判斷檔案大小,超出指定大小則按序自行建立檔案。如:檔案log_0大於指定大小,則重新建立log_1檔案(注意:建立檔案是安裝檔名字尾的數字的,請勿隨意更改日誌檔名)。

有待優化:

沒有指定檔案的最大個數,所以定期要手動刪除過多的日誌檔案。

呼叫示例:

php**  

//log

$l = log::get_instance();  

//第乙個引數 int 0代表事件記錄(thing log:),1代表錯誤記錄(error log:)

//第二個引數 string 描述文字

//第三個引數 string 時間

$l->log(1,'日誌描述', date('y-n-j h:m:s'));  

$l->close();  

此文作者的日誌是單一日誌,加數學序號擴充套件。

我現在用的是日期日誌,應用功能環境不一樣,實現的東西有些不同。

對於現在的應用程式來說,日誌的重要性是不言而喻的。很難想象沒有任何日誌記錄功能的應用程式執行在生產環境中。日誌所能提供的功能是多種多樣的,包括記錄程式執行時產生的錯誤資訊、狀態資訊、除錯資訊和執行時間資訊等。在生產環境中,日誌是查詢問題**的重要依據。應用程式執行時的產生的各種資訊,都應該通過日誌類庫來進行記錄。

廢話不多說了,附上日誌類庫的源**: 

php**  

/*** 日誌處理類

* * @since alpha 0.0.1

* @date 2014.03.04

* @author genialx

* */

class log  

/*** 單利模式

* * @since alpha 0.0.1

* @date 2014.02.04

* @author genialx

*/public

static

function get_instance()  

return self::$instance;  

}  /**

* * 日誌記錄

* * @param int $type  0 -> 記錄(thing log) / 1 -> 錯誤(error log)

* @param string $desc

* @param string $time

* * @since alpha 0.0.1

* @date 2014.02.04

* @author genialx

* */

public

function log($type,$desc,$time)  

switch($type)  

}  }  

/*** 獲取當前日誌的最新文件的字尾

* * @since alpha 0.0.1

* @date 2014.02.04

* @author genialx

*/private

function get_max_log_file_suf()  

}  }  

}  if($log_file_suf == null)  

//截斷檔案

if( file_exists($this->log_file_path . $this->log_file_pre . $log_file_suf) && filesize($this->log_file_path . $this->log_file_pre . $log_file_suf) >= $this->log_max_len)  

return

$log_file_suf;  

}     

}  return 0;  

}  /**

* 關閉檔案控制代碼

* * @since alpha 0.0.1

* @date 2014.02.04

* @author genialx

*/public

function close()  

}  

功能說明:

該日誌類利用單例模式,節省資源。自行判斷檔案大小,超出指定大小則按序自行建立檔案。如:檔案log_0大於指定大小,則重新建立log_1檔案(注意:建立檔案是安裝檔名字尾的數字的,請勿隨意更改日誌檔名)。

有待優化:

沒有指定檔案的最大個數,所以定期要手動刪除過多的日誌檔案。

呼叫示例:

php**  

//log

$l = log::get_instance();  

//第乙個引數 int 0代表事件記錄(thing log:),1代表錯誤記錄(error log:)

//第二個引數 string 描述文字

//第三個引數 string 時間

$l->log(1,'日誌描述', date('y-n-j h:m:s'));  

$l->close();  

PHP 日誌記錄功能實現

此文作者的日誌是單一日誌,加數學序號擴充套件。我現在用的是日期日誌,應用功能環境不一樣,實現的東西有些不同。對於現在的應用程式來說,日誌的重要性是不言而喻的。很難想象沒有任何日誌記錄功能的應用程式執行在生產環境中。日誌所能提供的功能是多種多樣的,包括記錄程式執行時產生的錯誤資訊 狀態資訊 除錯資訊和...

PHP實現記錄日誌(檔案)

phpphp 記錄日誌 header content type text html charset utf 8 記錄檔案 dir 檔案目錄 filename 檔名 data 存貯資料 separator 分隔符 function recordsfile dir,filename,data array...

日誌記錄功能

給自己的程式,加上記錄日誌的功能。以下是c 可以直接複製使用的。1 using system 2using system.collections.generic 3using system.text 4using system.io 56 namespace pingmock 7 3132 33 判...