Sorry but this takes me too many times. To use AWStats with an ISA server, just use now a preprocessor tool to convert into a W3C log file.
possible countries and icons (They appears when using geoip plugins).
- Better management of parsed lines counting. The last line number is
also stored in history file, for a future use.
+- Removed LogFormat=5 option for ISA log file because I am fed up of
+ supporting bugged and non standard MS products. Sorry but this takes me too
+ many times. To use AWStats with an ISA server, just use now a preprocessor
+ tool to convert into a W3C log file.
- Updated documentation.
<br># 3 - Webstar native log format
<br># 4 - Apache or Squid native common log format (NCSA common/CLF log format)
<br># With LogFormat=4, some features (browsers, os, keywords...) can't work.
-<br># 5 - ISA server native standard log format
<br># "your_own_personalized_log_format" = If your log is a personalized format,
<br># you must use the following syntax keys to define the log format string:
<br># %host Host client name or IP address
# 3 - Webstar native log format
# 4 - Apache or Squid native common log format (NCSA common/CLF log format)
# With LogFormat=4, some features (browsers, os, keywords...) can't work.
-# 5 - ISA server native standard log format
-# "your_own_personalized_log_format" = If your log is a personalized format,
+# "your_own_personalized_log_format" = To use AWStats with any not If your log is a personalized format,
# you must use the following syntax keys to define the log format string:
# %host Host client name or IP address
# %logname Authenticated login/user used on protected pages
$pos_host=0;$pos_logname=1;$pos_date=2;$pos_method=3;$pos_url=4;$pos_code=5;$pos_size=6;
@fieldlib=('host','logname','date','method','url','code','size');
}
+ # This is a deprecated option, will be removed in a next version.
elsif ($LogFormat eq '5') { # Same than "c-ip cs-username c-agent sc-authenticated date time s-svcname s-computername cs-referred r-host r-ip r-port time-taken cs-bytes sc-bytes cs-protocol cs-transport s-operation cs-uri cs-mime-type s-object-source sc-status s-cache-info"
$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;
}
# Split DD/Month/YYYY:HH:MM:SS or YYYY-MM-DD HH:MM:SS or MM/DD/YY\tHH:MM:SS
- $field[$pos_date] =~ tr/-\/ \t/::::/; # " \t" is used instead of "\s" not known with tr
+ $field[$pos_date] =~ tr/,-\/ \t/:::::/; # " \t" is used instead of "\s" not known with tr
my @dateparts=split(/:/,$field[$pos_date]); # tr and split faster than @dateparts=split(/[\/\-:\s]/,$field[$pos_date])
if ($dateparts[0] =~ /^....$/) { my $tmp=$dateparts[0]; $dateparts[0]=$dateparts[2]; $dateparts[2]=$tmp; }
elsif ($field[$pos_date] =~ /^..:..:..:/) { $dateparts[2]+=2000; my $tmp=$dateparts[0]; $dateparts[0]=$dateparts[1]; $dateparts[1]=$tmp; }