2009年5月26日星期二

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

你可以尝试下效果,对比下就知道了,我的发布环境就是普通dell 1u服务器

--
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>

效率真得好很多吗?

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 访问该论坛

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

没有评论: