2009年5月26日星期二

[PerlChina] Re: 固定的格式输出

# --------------------------------------------------------------------
use strict;
use Benchmark;

my $LOG_FILE = '/usr/local/apache/logs/access.log';
# 下面qr部分起了关键作用,预编译了表达式
my @EXT_LIST = map {qr/$_/} qw{
aaServlet
bbServlet
};

my $startime = new Benchmark;
my %result;
map {$result{$_} = 0} @EXT_LIST;
open LOG_FILE, $LOG_FILE;
while (<LOG_FILE>){
    foreach my $ext (@EXT_LIST)
        { $result{$ext}++ if $_ =~ /$ext/; }
}
close LOG_FILE;

while (my ($key, $value) = each(%result)){
    $key =~ s/\(\?-xism:(.*?)\)/$1/g;    #鱼兄,为什么这里你还要匹配一下?
    print "$key:\t$value\n";
}

printf "** %s\n\n", timestr(timediff(new Benchmark, $startime));







在 2009-05-25一的 11:24 +0800,smallfish写道:
是滴是滴,感谢扒到我博客~~~
缘分啦!

--
+ 推特: http://twitter.com/smallfish_xy
+ 新博: http://hi.baidu.com/smallfish_xy
+ 旧博: http://hi.baidu.com/smallfish7788


2009/5/25 Rainbird <chinakapalink@gmail.com>
哈哈,这个世界挺小

2009/5/25 smallfish <smallfish.xy@gmail.com>


哈哈,我的博客也被你扒到了啊~~~~~

--
+ 推特: http://twitter.com/smallfish_xy
+ 新博: http://hi.baidu.com/smallfish_xy
+ 旧博: http://hi.baidu.com/smallfish7788


2009/5/25 Rainbird <chinakapalink@gmail.com>


刚翻到一个博客也是分析日志的,你,值得拥有
http://hi.baidu.com/smallfish%5Fxy/blog/item/2bc4d4232d23e0ac4723e822.html


2009/5/25 xiaoliang <alabos@163.com>


用  printf  输出就行了.




----- Original Message -----
From: "Jacky Xu" <x2x4com@gmail.com>
To: "perlchina" <perlchina@googlegroups.com>
Sent: Monday, May 25, 2009 10:40 AM
Subject: [PerlChina] 固定的格式输出


> 兄弟们,我有个需求,为了工作方便我需要写一些实时的分析脚本来分析类似
> apache/ngx的日志
>
> 问题1:
> 我采用 open PIPE, "tail -f xxx |"的方式打开日志文件
> 这个有什么问题没有?   (现在有些机器的日志大概在每秒30~50条之间)
>
> 问题2:
> 我希望能输出类似的东西
> domain   count   bytes
> abc.com:    13    3300
>
> 除了数字的部分会变化,我希望abc.com: 不要变化 数字根据PIPE的分析累加变
> 化。
> 我现在是在循环里面套这print,每次循环结束都给我丢个print,很不舒服,满屏
> 幕的abc.com xxx xxx
>
> 有什么好的方法解决? format ?
>
>
>
>
> >
>














--~--~---------~--~----~------------~-------~--~----~
您收到此信息是由于您订阅了 Google 论坛"PerlChina Mongers 讨论组"论坛。
 要在此论坛发帖,请发电子邮件到 perlchina@googlegroups.com
 要退订此论坛,请发邮件至 perlchina+unsubscribe@googlegroups.com
 更多选项,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问该论坛

-~----------~----~----~----~------~----~------~--~---

没有评论: