From: eldy <> Date: Mon, 16 Sep 2002 15:37:15 +0000 (+0000) Subject: Added support for Lotus Notes/Domino log. X-Git-Tag: AWSTATS_5_0_BETA~38 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=fb7d140de84355b6333dffcafcc69aa900bbc5d6;p=thirdparty%2FAWStats.git Added support for Lotus Notes/Domino log. --- diff --git a/wwwroot/cgi-bin/awstats.pl b/wwwroot/cgi-bin/awstats.pl index 0bcac4a6..489e29ad 100644 --- a/wwwroot/cgi-bin/awstats.pl +++ b/wwwroot/cgi-bin/awstats.pl @@ -530,7 +530,13 @@ sub error { if ($LogFormat == 5) { print "${tagbold}\"ISA native log format\"${tagunbold}${tagbr}\n"; } - if ($LogFormat !~ /^[1-5]$/) { + if ($LogFormat == 6) { + print "${tagbold}\"Lotus Notes/Lotus Domino\"${tagunbold}${tagbr}\n"; + print ($HTMLOutput?"":""); + print "111.22.33.44 - Firstname Middlename Lastname [10/Jan/2001:02:14:14 +0200] \"GET / HTTP/1.1\" 200 1234 \"http://www.fromserver.com/from.htm\" \"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)\"\n"; + print ($HTMLOutput?"${tagbr}${tagbr}\n":""); + } + if ($LogFormat !~ /^[1-6]$/) { print "the following personalized log format:${tagbr}\n"; print ($HTMLOutput?"":""); print "$LogFormat\n"; @@ -1165,7 +1171,7 @@ sub Check_Config { } if (! $LogFile) { error("Error: LogFile parameter is not defined in config/domain file"); } if (! $LogFormat) { error("Error: LogFormat parameter is not defined in config/domain file"); } - if ($LogFormat =~ /^\d$/ && $LogFormat !~ /[1-5]/) { error("Error: LogFormat parameter is wrong in config/domain file. Value is '$LogFormat' (should be 1,2,3,4,5 or a 'personalized AWStats log format string')"); } + if ($LogFormat =~ /^\d$/ && $LogFormat !~ /[1-6]/) { error("Error: LogFormat parameter is wrong in config/domain file. Value is '$LogFormat' (should be 1,2,3,4,5 or a 'personalized AWStats log format string')"); } if (! $LogSeparator) { $LogSeparator="\\s"; } if ($Debug) { debug(" LogFile='$LogFile'",2); @@ -3775,7 +3781,7 @@ if ($UpdateStats && $FrameName ne "index" && $FrameName ne "mainleft") { # Updat if ($Debug) { debug("Generate PerlParsingFormat from LogFormat=$LogFormat"); } $PerlParsingFormat=""; - if ($LogFormat =~ /^[1-5]$/) { # Pre-defined log format + if ($LogFormat =~ /^[1-6]$/) { # Pre-defined log format if ($LogFormat eq "1") { # Same than "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" $PerlParsingFormat="([^ ]+) [^ ]+ ([^ ]+) \\[([^ ]+) [^ ]+\\] \\\"([^ ]+) ([^ ]+) [^\\\"]+\\\" ([\\d|-]+) ([\\d|-]+) \\\"(.*)\\\" \\\"([^\\\"]*)\\\""; # referer and ua might be "" $pos_host=0;$pos_logname=1;$pos_date=2;$pos_method=3;$pos_url=4;$pos_code=5;$pos_size=6;$pos_referer=7;$pos_agent=8; @@ -3796,6 +3802,10 @@ if ($UpdateStats && $FrameName ne "index" && $FrameName ne "mainleft") { # Updat $PerlParsingFormat="([^\\t]*)\\t([^\\t]*)\\t([^\\t]*)\\t[^\\t]*\\t([^\\t]*\\t[^\\t]*)\\t[^\\t]*\\t[^\\t]*\\t([^\\t]*)\\t[^\\t]*\\t[^\\t]*\\t[^\\t]*\\t[^\\t]*\\t[^\\t]*\\t([^\\t]*)\\t[^\\t]*\\t[^\\t]*\\t([^\\t]*)\\t([^\\t]*)\\t[^\\t]*\\t[^\\t]*\\t([^\\t]*)\\t[^\\t]*"; $pos_host=0;$pos_logname=1;$pos_agent=2;$pos_date=3;$pos_referer=4;$pos_size=5;$pos_method=6;$pos_url=7;$pos_code=8; } + elsif ($LogFormat eq "6") { # Lotus notes (allows spaces in the logname without quoting them) + $PerlParsingFormat="([^\\s]+) [^\\s]+ (.+) \\[([^\\s]+) [^\\s]+\\] \\\"([^\\s]+) ([^\\s]+) [^\\\"]+\\\" ([\\d|-]+) ([\\d|-]+) \\\"(.*)\\\" \\\"([^\\\"]*)\\\""; # referer and ua might be "" + $pos_host=0;$pos_logname=1;$pos_date=2;$pos_method=3;$pos_url=4;$pos_code=5;$pos_size=6;$pos_referer=7;$pos_agent=8; + } } else { # Personalized log format my $LogFormatString=$LogFormat; @@ -4021,7 +4031,7 @@ if ($UpdateStats && $FrameName ne "index" && $FrameName ne "mainleft") { # Updat if ($Debug) { debug(" Correct format line $NbOfLinesRead : host=\"$field[$pos_host]\", logname=\"$field[$pos_logname]\", date=\"$field[$pos_date]\", method=\"$field[$pos_method]\", url=\"$field[$pos_url]\", code=\"$field[$pos_code]\", size=\"$field[$pos_size]\", referer=\"$field[$pos_referer]\", agent=\"$field[$pos_agent]\"",4); } #if ($Debug) { debug("$field[$pos_vh] - $field[$pos_gzipin] - $field[$pos_gzipout] - $field[$pos_gzipratio]\n",4); } - if ($Debug) { debug("$field[$pos_emails] - $field[$pos_emailr] - $field[$pos_hostr]\n",4); } + #if ($Debug) { debug("$field[$pos_emails] - $field[$pos_emailr] - $field[$pos_hostr]\n",4); } # Check virtual host name #---------------------------------------------------------------------- @@ -4265,6 +4275,8 @@ if ($UpdateStats && $FrameName ne "index" && $FrameName ne "mainleft") { # Updat # Analyze: Login #--------------- if ($pos_logname>=0 && $field[$pos_logname] && $field[$pos_logname] ne "-") { + if ($LogFormat eq '6') { $field[$pos_logname] =~ s/ /\_/g; } # Lotus notes allow space in logname field + # We found an authenticated user if ($PageBool) { $_login_p{$field[$pos_logname]}++; #Count accesses for page (page)