登录  /  注册

slowlog分析工具 v 10

php中文网
发布: 2016-08-08 09:18:56
原创
957人浏览过
<?php /**
 *  slowlog分析工具 v 1.0 
 *
 */
if( $argc < 2 ){
	
	$help.= "Help:" .PHP_EOL;
	$help.= "        slowlog.php [option]" .PHP_EOL;
	$help.= "        -f  log file path.".PHP_EOL;
	$help.= "e.g : php slowlog.php -f slow.log".PHP_EOL;
	
	exit($help);	
}

$file = $argv[2];

$logs = loadFile( $file );

$stats = array();

echo "Slow log:" . PHP_EOL;
foreach($logs as $key => $logsArr){
	
	echo "---------------------------{$key}-------------------------------" .PHP_EOL;
	
	foreach($logsArr as $k =&gt; $v){
	    echo $k . "     [num : ".count($v)."]" .PHP_EOL;	
		 foreach ($v as $phpfile){
			 
			$n = explode(":",$phpfile);
			
			$s = explode(" ",$n[0]);
			 
			if($s[2] &amp;&amp; $s[2] != 'unknown' &amp;&amp; $s[2] != 'dump'){
		       // echo "======&gt; " . $s[2] . "[ Line: {$n[1]}]". PHP_EOL;
                
				$md5_key = md5($s[2].$n[1]);
				
				if(array_key_exists($md5_key,$stats[$key])){
				
					$stats[$key][$md5_key] = array(
					        'main'=&gt;$k,
							'file'=&gt; $s[2],
							'line'=&gt; $n[1],
							'code'=&gt; $s[1],
							'num'=&gt; $stats[$key][$md5_key]['num'] + 1
					);
				} else {
					
					$stats[$key][$md5_key] = array(
					        'main'=&gt;$k,
							'file'=&gt; $s[2],
							'line'=&gt; $n[1],
							'code'=&gt; $s[1],
							'num'=&gt;1
					);
					
				}
				
			}
		}
	}
	
}

echo PHP_EOL;
echo PHP_EOL;
echo PHP_EOL;
echo "Create json file: slowlog.json" . PHP_EOL;
file_put_contents('slowlog.json',json_encode($stats));
echo "Success!" . PHP_EOL;
echo "http://tool.lu/json/";



function loadFile( $file ){

	$str = file_get_contents($file);

	$arr = explode("\n",$str);
	$g = 0;
	$data = array();
	foreach($arr as $val){
		if( $val ){
			$data[ $g - 1][] = $val; 		   		
		} else {
			
			$g++;
		}
	} 

	$logs = array();
	foreach( $data as $key =&gt; $log){
		foreach($log as $k =&gt; $l){
		   
			$time = $data[$key][0]; 
			$phpfile = $data[$key][1];
			$p = "#\[(.*?) (.*?)\]  \[(.*?)\] pid (.*?)#";
			preg_match($p,$data[$key][0],$arr);
			$time = $arr[1]; 

			if( $data[$key][0] != $l ){
				
				if( $phpfile != $l ){
					$logs[ $time ][$phpfile][] = $l;
				}
			}
		}	
	}
	
	return $logs;
}
登录后复制

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了slowlog分析工具 v 10,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号