참조: https://github.com/PeterHickman/Apache-LogRegex
MAC에서 PERL로 구현해서 시험함.
Apache-LogRegex에서 LogRegex.pm만 가져다가 Apache 디렉토리에 옮겨두고 시험함.
아래 main.pl 파일로
아파치로그 1줄에서 각각의 정보를 가져옴.
#!/usr/bin/perl # use strict; use diagnostics; use warnings; use Apache::LogRegex print "=== test ===\n"; my $line1 = '212.74.15.68 - - [23/Jan/2004:11:36:20 +0000] "GET /images/previous.png HTTP/1.1" 200 2607 "http://peterhi.dyndns.org/bandwidth/index.html" "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2) Gecko/20021202"'; my $format = '%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"'; my $newRegex = Apache::LogRegex->new($format); my $r = $newRegex->regex(); print "$r\n\n\n"; print "$line1\n"; my %data = $newRegex->parse($line1); print "[1 h] $data{'%h'}\n"; print "[2 l] $data{'%l'}\n"; print "[3 u] $data{'%u'}\n"; print "[4 t] $data{'%t'}\n"; print "[5 r] $data{'%r'}\n"; print "[6 >s]$data{'%>s'}\n"; print "[7 b] $data{'%b'}\n"; print "[8 %{Referer}i] $data{'%{Referer}i'}\n"; print "[9 %{User-Agent}i] $data{'%{User-Agent}i'}\n";
반응형
'Language > PERL' 카테고리의 다른 글
모듈이 없는 경우 (1136) | 2016.01.29 |
---|---|
PERL 확장자 *.pm *.pl 차이 (1156) | 2016.01.27 |
Perl 네트웍 (링크) (477) | 2012.08.28 |