解析日志问题
127.0.0.1 - - [28/Mar/2016:11:17:33 +0800] "GET /abc/a1/login?aid=6&clientver=20160107&gid=F35DA66BB5EFB4F2FA5A8DF9A0DA2E8E&time=1459135036&value=ABCDEGSHIOEHIE1534876457EWQERQ42&pwd=4897654897486489WERQER487WEEQWEW HTTP/1.1" 200 38 "-" "-" - "0.017"
127.0.0.1 - - [28/Mar/2016:11:17:33 +0800] "GET /abc/a1/pat?rid=51457573427 HTTP/1.1" 200 1068 "-" "-" - "0.017"
127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "GET /abc/a1/login?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18&pwd=4897654897486489WERQER487WEEQWEW HTTP/1.1" 200 38 "-" "-" - "0.021"
127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "GET /abc/a1/login?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18&pwd=4897654897486489WERQER487WEEQWEW HTTP/1.1" 200 38 "-" "-" - "0.018"
127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "POST /abc/a1/post?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18 HTTP/1.1" 200 174 "-" "-" - "0.043"
127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "POST /abc/a1/post?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18 HTTP/1.1" 200 66 "-" "-" - "0.035"
127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "POST /abc/a1/img?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18&sid=59&rid=41897423418&imgname=101_20160104_105657_733%20-%20%E5%89%AF%E6%9C%AC.jpg HTTP/1.1" 200 67 "-" "-" - "0.115"
127.0.0.1 - - [28/Mar/2016:11:23:15 +0800] "GET /abc/a1/end?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135378&value=9C59B861AE0AB2C6BB9DEC8819AE1015&sid=59&rid=41897423418 HTTP/1.1" 200 38 "-" "-" - "0.136"
如何解析类似以上日志文件分别获得四个接口(login,post,img,end )每分钟访问次数 ,每分钟成功数 每分钟失败数 以及每分钟平均的响应时间
日志格式最后为 响应时间如:0.136。
回复讨论(解决方案)
$log =<<< TXT127.0.0.1 - - [28/Mar/2016:11:17:33 +0800] "GET /abc/a1/login?aid=6&clientver=20160107&gid=F35DA66BB5EFB4F2FA5A8DF9A0DA2E8E&time=1459135036&value=ABCDEGSHIOEHIE1534876457EWQERQ42&pwd=4897654897486489WERQER487WEEQWEW HTTP/1.1" 200 38 "-" "-" - "0.017"127.0.0.1 - - [28/Mar/2016:11:17:33 +0800] "GET /abc/a1/pat?rid=51457573427 HTTP/1.1" 200 1068 "-" "-" - "0.017"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "GET /abc/a1/login?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18&pwd=4897654897486489WERQER487WEEQWEW HTTP/1.1" 200 38 "-" "-" - "0.021"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "GET /abc/a1/login?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18&pwd=4897654897486489WERQER487WEEQWEW HTTP/1.1" 200 38 "-" "-" - "0.018"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "POST /abc/a1/post?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18 HTTP/1.1" 200 174 "-" "-" - "0.043"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "POST /abc/a1/post?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18 HTTP/1.1" 200 66 "-" "-" - "0.035"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "POST /abc/a1/img?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18&sid=59&rid=41897423418&imgname=101_20160104_105657_733%20-%20%E5%89%AF%E6%9C%AC.jpg HTTP/1.1" 200 67 "-" "-" - "0.115"127.0.0.1 - - [28/Mar/2016:11:23:15 +0800] "GET /abc/a1/end?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135378&value=9C59B861AE0AB2C6BB9DEC8819AE1015&sid=59&rid=41897423418 HTTP/1.1" 200 38 "-" "-" - "0.136"TXT;foreach(preg_split("/[\r\n]+/", $log) as $row) { $t = explode(" ", $row); @$res[date('Y-m-d H:i', strtotime(substr($t[3].' '.$t[4], 1, -1)))][basename(parse_url($t[6])['path'])]++;}print_r($res);
Array( [2016-03-28 11:17] => Array ( [login] => 1 [pat] => 1 ) [2016-03-28 11:23] => Array ( [login] => 2 [post] => 2 [img] => 1 [end] => 1 ))
使用explode分割成数组,然后分析统计即可。
$log =<<< TXT127.0.0.1 - - [28/Mar/2016:11:17:33 +0800] "GET /abc/a1/login?aid=6&clientver=20160107&gid=F35DA66BB5EFB4F2FA5A8DF9A0DA2E8E&time=1459135036&value=ABCDEGSHIOEHIE1534876457EWQERQ42&pwd=4897654897486489WERQER487WEEQWEW HTTP/1.1" 200 38 "-" "-" - "0.017"127.0.0.1 - - [28/Mar/2016:11:17:33 +0800] "GET /abc/a1/pat?rid=51457573427 HTTP/1.1" 200 1068 "-" "-" - "0.017"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "GET /abc/a1/login?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18&pwd=4897654897486489WERQER487WEEQWEW HTTP/1.1" 200 38 "-" "-" - "0.021"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "GET /abc/a1/login?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18&pwd=4897654897486489WERQER487WEEQWEW HTTP/1.1" 200 38 "-" "-" - "0.018"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "POST /abc/a1/post?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18 HTTP/1.1" 200 174 "-" "-" - "0.043"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "POST /abc/a1/post?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18 HTTP/1.1" 200 66 "-" "-" - "0.035"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "POST /abc/a1/img?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18&sid=59&rid=41897423418&imgname=101_20160104_105657_733%20-%20%E5%89%AF%E6%9C%AC.jpg HTTP/1.1" 200 67 "-" "-" - "0.115"127.0.0.1 - - [28/Mar/2016:11:23:15 +0800] "GET /abc/a1/end?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135378&value=9C59B861AE0AB2C6BB9DEC8819AE1015&sid=59&rid=41897423418 HTTP/1.1" 200 38 "-" "-" - "0.136"TXT;foreach(preg_split("/[\r\n]+/", $log) as $row) { $t = explode(" ", $row); @$res[date('Y-m-d H:i', strtotime(substr($t[3].' '.$t[4], 1, -1)))][basename(parse_url($t[6])['path'])]++;}print_r($res);
Array( [2016-03-28 11:17] => Array ( [login] => 1 [pat] => 1 ) [2016-03-28 11:23] => Array ( [login] => 2 [post] => 2 [img] => 1 [end] => 1 ))
恩恩,谢谢!大神 我想统计这一分钟的平均响应时间,我该如何实现呢??
其他细节请自行补上,总是要自己动动脑筋的
响应时间 是哪项?
加起来除以条数
响应时间 是哪项?
加起来除以条数
就是最后的那个数字 第一条是0.017
$log =<<< TXT127.0.0.1 - - [28/Mar/2016:11:17:33 +0800] "GET /abc/a1/login?aid=6&clientver=20160107&gid=F35DA66BB5EFB4F2FA5A8DF9A0DA2E8E&time=1459135036&value=ABCDEGSHIOEHIE1534876457EWQERQ42&pwd=4897654897486489WERQER487WEEQWEW HTTP/1.1" 200 38 "-" "-" - "0.017"127.0.0.1 - - [28/Mar/2016:11:17:33 +0800] "GET /abc/a1/pat?rid=51457573427 HTTP/1.1" 200 1068 "-" "-" - "0.017"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "GET /abc/a1/login?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18&pwd=4897654897486489WERQER487WEEQWEW HTTP/1.1" 200 38 "-" "-" - "0.021"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "GET /abc/a1/login?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18&pwd=4897654897486489WERQER487WEEQWEW HTTP/1.1" 200 38 "-" "-" - "0.018"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "POST /abc/a1/post?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18 HTTP/1.1" 200 174 "-" "-" - "0.043"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "POST /abc/a1/post?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18 HTTP/1.1" 200 66 "-" "-" - "0.035"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "POST /abc/a1/img?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18&sid=59&rid=41897423418&imgname=101_20160104_105657_733%20-%20%E5%89%AF%E6%9C%AC.jpg HTTP/1.1" 200 67 "-" "-" - "0.115"127.0.0.1 - - [28/Mar/2016:11:23:15 +0800] "GET /abc/a1/end?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135378&value=9C59B861AE0AB2C6BB9DEC8819AE1015&sid=59&rid=41897423418 HTTP/1.1" 200 38 "-" "-" - "0.136"TXT;foreach(preg_split("/[\r\n]+/", $log) as $row) { $t = explode(" ", $row); $k = date('Y-m-d H:i', strtotime(substr($t[3].' '.$t[4], 1, -1))); @$res[$k][basename(parse_url($t[6])['path'])]++; $res[$k]['avg'][] = trim(end($t), '"'); //新增}foreach($res as &$v) $v['avg'] = array_sum($v['avg']) / count($v['avg']); //新增print_r($res);
Array( [2016-03-28 11:17] => Array ( [login] => 1 [avg] => 0.017 [pat] => 1 ) [2016-03-28 11:23] => Array ( [login] => 2 [avg] => 0.061333333333333 [post] => 2 [img] => 1 [end] => 1 ))
$log =<<< TXT127.0.0.1 - - [28/Mar/2016:11:17:33 +0800] "GET /abc/a1/login?aid=6&clientver=20160107&gid=F35DA66BB5EFB4F2FA5A8DF9A0DA2E8E&time=1459135036&value=ABCDEGSHIOEHIE1534876457EWQERQ42&pwd=4897654897486489WERQER487WEEQWEW HTTP/1.1" 200 38 "-" "-" - "0.017"127.0.0.1 - - [28/Mar/2016:11:17:33 +0800] "GET /abc/a1/pat?rid=51457573427 HTTP/1.1" 200 1068 "-" "-" - "0.017"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "GET /abc/a1/login?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18&pwd=4897654897486489WERQER487WEEQWEW HTTP/1.1" 200 38 "-" "-" - "0.021"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "GET /abc/a1/login?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18&pwd=4897654897486489WERQER487WEEQWEW HTTP/1.1" 200 38 "-" "-" - "0.018"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "POST /abc/a1/post?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18 HTTP/1.1" 200 174 "-" "-" - "0.043"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "POST /abc/a1/post?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18 HTTP/1.1" 200 66 "-" "-" - "0.035"127.0.0.1 - - [28/Mar/2016:11:23:14 +0800] "POST /abc/a1/img?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135377&value=5913350E12FE86E07E794E8E532D2D18&sid=59&rid=41897423418&imgname=101_20160104_105657_733%20-%20%E5%89%AF%E6%9C%AC.jpg HTTP/1.1" 200 67 "-" "-" - "0.115"127.0.0.1 - - [28/Mar/2016:11:23:15 +0800] "GET /abc/a1/end?aid=5&clientver=20160107&gid=4897654WQERWQWRRWRERASDW595564WQ&time=1459135378&value=9C59B861AE0AB2C6BB9DEC8819AE1015&sid=59&rid=41897423418 HTTP/1.1" 200 38 "-" "-" - "0.136"TXT;foreach(preg_split("/[\r\n]+/", $log) as $row) { $t = explode(" ", $row); $k = date('Y-m-d H:i', strtotime(substr($t[3].' '.$t[4], 1, -1))); @$res[$k][basename(parse_url($t[6])['path'])]++; $res[$k]['avg'][] = trim(end($t), '"'); //新增}foreach($res as &$v) $v['avg'] = array_sum($v['avg']) / count($v['avg']); //新增print_r($res);
好的 谢谢!!!谢谢大神!!!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

Laravel使用其直观的闪存方法简化了处理临时会话数据。这非常适合在您的应用程序中显示简短的消息,警报或通知。 默认情况下,数据仅针对后续请求: $请求 -

PHP客户端URL(curl)扩展是开发人员的强大工具,可以与远程服务器和REST API无缝交互。通过利用Libcurl(备受尊敬的多协议文件传输库),PHP curl促进了有效的执行

Laravel 提供简洁的 HTTP 响应模拟语法,简化了 HTTP 交互测试。这种方法显着减少了代码冗余,同时使您的测试模拟更直观。 基本实现提供了多种响应类型快捷方式: use Illuminate\Support\Facades\Http; Http::fake([ 'google.com' => 'Hello World', 'github.com' => ['foo' => 'bar'], 'forge.laravel.com' =>

您是否想为客户最紧迫的问题提供实时的即时解决方案? 实时聊天使您可以与客户进行实时对话,并立即解决他们的问题。它允许您为您的自定义提供更快的服务

文章讨论了PHP 5.3中引入的PHP中的晚期静态结合(LSB),从而允许静态方法的运行时分辨率调用以获得更灵活的继承。 LSB的实用应用和潜在的触摸
