加入收藏 | 设为首页 | 会员中心 | 我要投稿 安阳站长网 (https://www.0372zz.cn/)- 高性能计算、分布式云、混合云存储、云计算、视频终端!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php怎么写一个日志功能的函数

发布时间:2022-07-29 11:28:10 所属栏目:PHP教程 来源:互联网
导读:我们要写一个写日志的函数,首先需要了解需求,我们一般怎么用日志函数呢?例如,程序执行到某一步,我希望把这个变量(地址)$user_address的值打印到日志,我们希望日志里是这么写的: `xx-xx-xx xx:xx $user_address : 上海市杨浦区xxxxx 然后每一条日志都要换行,
  我们要写一个写日志的函数,首先需要了解需求,我们一般怎么用日志函数呢?例如,程序执行到某一步,我希望把这个变量(地址)$user_address的值打印到日志,我们希望日志里是这么写的:
 
  `xx-xx-xx xx:xx $user_address : 上海市杨浦区xxxxx
 
  然后每一条日志都要换行,都有日期时间,
 
  假设 函数名称是log();
 
  我们希望这么调用他 log(‘useraddress:user_address);
 
  那如果$user_address 是一个数组,我想把一个数组的全都都输出到日志中,该怎么办呢?
 
  有一个函数是print_r($arg,true),第二个参数表示不直接输出,而是输出的结果作为返回值.我们知道他的输出结果为一段字符串.
 
  log函数可以这么写:
 
  log(){$args= func_get_args();//获得传入的所有参数的数组
  $numargs= func_num_args();//参数的个数
  if($numargs==0) {
  $log="";      
  } elseif ($numargs==1) {
  $log=$args[0];      
  }else{$format= array_shift($args);//分割掉函数第一个元素,并且做返回值返回,
  '$user_address:%s'$log= vsprintf($format,$args);//把参数代入$format中,}$log=date("[Y/m/d H:i:s] ") .$log. PHP_EOL;//加上时间$file='/usr/share/nginx/html/log.log'$fp=fopen($file,'a');fwrite($fp,$log);fclose($fp);returntrue;      
  }  
  用法:
 
  1.打印一般变量$a,
 
  log('得到了$a的值:%s',$a );
 
  2 . 打印一个数组$arr
 
  log('%s',print_r($arr,true));
 
  可以对上面的函数进行改进下:
 
  functionlog2($arg){$log= vsprintf('%s', print_r($arg,true));$log= date('[Y/m/d H:i:s]') .'---'.$log. PHP_EOL;$path= dirname(__FILE__) .'/log.log'$fp= file_put_contents($path,$log, FILE_APPEND);returntrue; }$a=[1,23,45,45]; log2($a); 

(编辑:安阳站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读