博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
thinkphp日志分析
阅读量:6257 次
发布时间:2019-06-22

本文共 1751 字,大约阅读时间需要 5 分钟。

hot3.png

#!/usr/bin/perl -wuse strict;use warnings;use Tie::File;#####   Thinkphp日志分析#       日志基本格式:{$now} ".$_SERVER['REQUEST_URI']." | {$level}: {$message}\r\n", $type,$destination,$extra#   使用方法:#sub parse_log{    my $file = shift;    open my $fd , "<" , $file or die "open file error";    my %hash ;  #字符串与访问次数哈希表        while(<$fd>){        #      2013-11-18  01:30:05+08:00    uri     info   tag-end  Runtime        if( /\[ (\d{
4}-\d{
2}-\d{
2})T(.+) \] (.+) \| (.+) \[ (.+) \]/ ){ my $date = $1 ; my $time = $2 ; my $uri = $3 ; my $info = $4 ; my $runtime = $5 ; #下面解析 /APP/?s=Module/action 的情况 if( $uri =~ /(\/.*\/\?s=\w+\/\w+)/ && $info eq "INFO: Tag[ view_end ] --END--" ){ #print "origin:$_\n$info \t $uri\n" ; my $count = 1 ; my $date_key = "$date-$1" ; if( exists $hash{
$date_key} ){ $count = $hash{
$date_key} + 1 ; } $hash{
$date_key} = $count; } } } #排序输出结果 #my @keys = sort { $hash{$b} <=> $hash{$a} or $b cmp $a } keys(%hash); my @keys = sort keys(%hash); my @vals = @hash{
@keys}; foreach my $key (@keys) { print "$hash{$key} \t $key\n"; }}sub read_file{ my $file = shift ; parse_log($file);}sub read_dir{ my $log_home = "/data2/log/202-log/mobiapi/1.0" ; chdir $log_home or die "chdir error ?!" ; my @files = <*> ; for my $file (@files){ read_file($file); }}sub main{ my $file = "/xxx/all.log" ; print "———————————————$file———————————————————\n"; read_file($file);}main();

 

转载于:https://my.oschina.net/ifeixiang/blog/339555

你可能感兴趣的文章
UDT协议实现分析——UDT数据收发的可靠性保障
查看>>
谷歌将降低侵权网站的排名
查看>>
知识图谱的应用
查看>>
springboot 系列教程一:基础项目搭建
查看>>
Rxjava2 源码解析 (三)
查看>>
ios cocoapods 0.32.1 升级提示不行 要安装cocoapods-core
查看>>
匿名函数和闭包
查看>>
Overfitting
查看>>
Open vSwitch 简介
查看>>
Composer
查看>>
Go Little Book - 关于本书
查看>>
Java 反斜杠如何转义的问题
查看>>
关于POJO类
查看>>
inline函数
查看>>
mysql 5.7 修改初始密码
查看>>
修改Mac OS X的hosts文件
查看>>
表单提交时的非法性有效性验证
查看>>
李开复:21世纪最需要的7种人才
查看>>
opencsv
查看>>
单词匹配二
查看>>