ホームページ > バックエンド開発 > PHPチュートリアル > PHP はシングルトン モードを使用してログ処理クラス ライブラリを実装します_PHP チュートリアル

PHP はシングルトン モードを使用してログ処理クラス ライブラリを実装します_PHP チュートリアル

WBOY
リリース: 2016-07-13 10:39:12
オリジナル
775 人が閲覧しました

今日のアプリケーションにとって、ログの重要性は自明の理です。ログ機能のない運用環境でアプリケーションが実行されることを想像するのは困難です。ログが提供できる機能は多岐にわたり、プログラム実行時に発生するエラー情報、ステータス情報、デバッグ情報、実行時間情報などを記録できます。実稼働環境では、ログは問題の原因を見つけるための重要な基礎となります。アプリケーションの実行中に生成されるさまざまな情報は、ログ ライブラリを通じて記録される必要があります。

コードをコピーします コードは次のとおりです:

/**
* ログ処理クラス
*
* @since alpha 0.0.1
* @date 2014.03.04
* @author genialx
*
*/

class Log{

//シングルケースモード
private static $instance = NULL;
//ファイルハンドル
private static $handle = NULL;
private $log_switch = NULL;
//ログの相対ディレクトリ
private $log_file_path = NULL;
//ログ ファイルの最大長、長さを超えた場合はファイルを再作成
private $log_max_len = NULL;
//ログ ファイルのプレフィックス、log_0 を入力
private $ log_file_pre = 'log_';

/**​​​​*/
protected function __construct(){//注: 以下は設定ファイル内の定数です。ご自身で変更してください

$this->log_file_path = LOG_FILE_PATH ;

$this->log_switch use using ( using ‐ ‐ ‐ ‐ ‐ ‐ ‐ instance(){
if(!self: :$instance instanceof self){
self::$instance = new self; $時間) {m if ($ this-& gt; log_switch) {

if (self :: $ handle == null) {
$ filename = $ this-& gt; log_file_suf ();ハンドル = fopen($this->log_file_path . $filename, 'a');
}
switch($type){
case 0:
fwrite(self::$handle, 'THING LOG:' . ' ' . $desc . ' ' . $time .休憩;
ケース 1 :
fwrite(self::$handle, 'ERROR LOG:' . ' ' . $desc . ' ' . $time . chr(13));
Break;
デフォルト:
fwrite(self::$handle, ' THING LOG:' . ' . $desc . chr(13));
}

}

/ **
*現在のログの最新のドキュメントの接尾辞を取得します
*
*/
プライベート関数 get_max_log_file_suf(){
$log_file_suf = null;
if(is_dir($this->log_file_path)){
if($dh = opendir($this->log_file_path)){
while(($file = readdir ($dh)) != FALSE){
if($file != '.' && $file != '..'){
if(filetype( $this->log_file_path . $file) == 'file'){
$ rs = split('_', $file);
if($log_file_suf $log_file_suf = $rs[1];
}
}
}

if($log _file_suf == NULL){
$log_file_suf = 0;
}
//截断文件
if( $this->log_ファイルパス 。 $this->log_file_pre 。 $log_file_suf) && filesize($this->log_file_path . $this->log_file_pre . $log_file_suf) >= $this->log_max_len){
$log_file_suf = intval($log_file_suf) + 1;
}

return $log_file_suf;
}


機能の説明:
このログクラスはリソースを節約するためにシングルトンモードを使用します。ファイルサイズを自分で決めて、指定サイズを超える場合は順番にファイルを作成してください。たとえば、ファイル log_0 が指定されたサイズより大きい場合、log_1 ファイルが再作成されます (注: 作成されたファイルはファイル名の接尾辞の番号に基づいています。ログ ファイル名は任意に変更しないでください)。 。

最適化するには: ファイルの最大数が指定されていないため、過剰なログ ファイルは定期的に手動で削除する必要があります。

通話例:




コードをコピーします

コードは次のとおりです:


//LOG
$L = Log::get_instance();//最初のパラメータ int 0 はイベント レコード (THING LOG:) を表します。 1 はエラー レコード (ERROR LOG:) を表します

//2 番目のパラメーター文字列の説明 text
//3 番目のパラメーター文字列 time

$L->log(1,'Log description', date('Y-n-j H:m: s') );

$L->close();

http://www.bkjia.com/PHPjc/732389.htmlwww.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/732389.html

技術記事

今日のアプリケーションにとって、ログの重要性は自明のことです。ログ機能のない運用環境でアプリケーションが実行されることを想像するのは困難です。ログが提供できる機能...

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート