增加记录php,php之框架增加日志记录功能类

/*

思路:给定文件,写入读取(fopen ,fwrite……)

如果大于1M 则重写备份

传给一个内容,

判断大小,如果大于1M,备份

小于则写入

*/

class Log{

//定义一个常量,创建一个文件的名称

const LOGFILE = ‘curr.log‘;

//写入文件

public static function write($cont){

$cont .="\r\n";

$log = self::isBak(); //计算文件的地址,判断大小

$fh = fopen($log,‘ab‘); //打开,追加模式

fwrite($fh,$cont);

fclose($fh);

}

//备份日志

public static function bak(){

//给出写入文件的路径,把原来的日志

//改为年月日 .bak 的形式

$log = ROOT .‘data/log/‘. self::LOGFILE;

$bak = ROOT .‘data/log/‘.date(‘Ymd‘) .mt_rand(10000,99999). ‘.bak‘;

return rename($log,$bak);

}

//判断日志是否大于1M

public static function isBak(){

//判断文件是否存在

$log = ROOT .‘data/log/‘. self::LOGFILE;

if(!file_exists($log)){

//如果不存在,则创建该文件

touch($log); // touch在linux也有此命令,是快速的建立一个文件

return $log;

}

//判断大小

clearstatcache(true,$log); //清除缓存,则创建.bak文件

$size = filesize($log);

if($size <= 1024*1024){

//如果<=1M 则写入

return $log;

}

//到这一行,说明大于1M

if(!self::bak()){

return $log;

} else {

touch($log);

return $log;

}

}

}

?>

极端法测试调用,循环执行10000次

//另起页面

//引入日志功能类

class mysql{

public function query($sql){

Log::write($sql);

}

}

$mysql= new mysql();

/**/

for($i=0;$i<10000;$i++){

$sql=‘select goods_id,goods_name,shop_price from goodsselect goods_id,goods_name,shop_price from goodsselect goods_id,goods_name,shop_price from goodsselect goods_id,goods_name,shop_price from goodsselect goods_id,goods_name,shop_price from goodsselect goods_id,goods_name,shop_price from goods where goods_id=‘.rand(10000,99999);

$mysql->query($sql);

}

Log::write(‘记录‘);

echo "执行完毕";

1355640934_2684.jpg

原文:http://www.cnblogs.com/wang1204/p/5570011.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值