참조: 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

+ Recent posts