2009年5月26日星期二

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

效率真得好很多吗?

my @EXT_LIST = map {qr/$_/} qw{
aaServlet
bbServlet
};

aaServlet 就是你要匹配的内容咯


在 2009-05-26二的 15:39 +0800,smallfish写道:
> 因为result里的key值都是?-xism:bbServlet类似这个样子的,就是上面预编译
> 以后的字符串的样子
> 实在不方便查看把,就手动替换了下下。
>
> 不容易,这位仁兄竟然把我代码扒拉下来了 :)
>
> --
> twitter : http://twitter.com/smallfish_xy
> blog : http://hi.baidu.com/smallfish_xy
> http://hi.baidu.com/smallfish7788
>
>
> 2009/5/26 Jacky Xu <x2x4com@gmail.com>
> #
> --------------------------------------------------------------------
> 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 访问该论坛
-~----------~----~----~----~------~----~------~--~---

没有评论: