今日のアプリケーションにとって、ログの重要性は自明の理です。ログ機能のない運用環境でアプリケーションが実行されることを想像するのは困難です。ログが提供できる機能は多岐にわたり、プログラム実行時に発生するエラー情報、ステータス情報、デバッグ情報、実行時間情報などを記録できます。実稼働環境では、ログは問題の原因を見つけるための重要な基礎となります。アプリケーションの実行中に生成されるさまざまな情報は、ログ ライブラリを通じて記録される必要があります。
コードをコピーします コードは次のとおりです:
/**
* ログ処理クラス
*
* @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
true
http://www.bkjia.com/PHPjc/732389.html
技術記事
今日のアプリケーションにとって、ログの重要性は自明のことです。ログ機能のない運用環境でアプリケーションが実行されることを想像するのは困難です。ログが提供できる機能...