For whatever reason, apache is spitting out logs where it does not use a consistent timezone. This is obviously not AWStat's fault; however, it seems AWStats is not correctly handling this.
For example, I have a file like this:
192.17.107.72 - - [07/Sep/2010:12:06:39 -0500] "GET
192.17.111.138 - - [07/Sep/2010:17:06:45 +0000] "GET ...
192.17.107.72 - - [07/Sep/2010:12:06:47 -0500] "GET ...
...
You'll notice it says the timezone is -5 first, then +0, then -5 again. The times are actually correct (the 17:06:45 has been adjusted by adding 5). However, when I run AWStats on this, I get:
$ perl awstats.pl -config=fsl -showcorrupted
From data in log file ...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Corrupted record (date 20100907120647 lower than 20100907170645-20000): 192.17.107.72 - - [07/Sep/2010:12:06:47 -0500] "GET ...
For whatever reason, this is incredibly common in my logs, and so well more than 90% of the entries are being thrown away as being corrupted.
I've attached an actual file that was generated by apache and which gives the above behavior in AWStats 6.95 build 1.932 on Linux.
log file that demonstrates the bug