I have a webapplication running (www.lessonsite.com.au) and managed to get Tomcat to generate request logs. Webalizer then reads these logs and generates very nice request statistics.
However, the request log grows big very quickly and needs to be rotated. I used logrotate for that. Unfortunately webalizer needs the same log file to read from every time - request_log_2006_10_08.log and request_log_2006_10_09.log won't do. Pity. Rotating the log while the server runs results in an invalid new log. The docs say stop the web server, rotate the logs, restart the web server. With Apache that is quick, but with JBoss restarting takes the best part of a minute.
The logs grow so big quite quickly that webalizer takes more than 10 seconds to do its thing. Once that crashed the server. Resources are limited.
Does anyone know a way past this? I am thinking of running JBoss behind Apache which then generates the request logs. That way only Apache needs to be restarted. According to the Tomcat website the performance advantage of Apache over Tomcat 5 is no longer a factor. So, I am loathe to do this.
This will be an issue for anyone running JBoss who wants request statistics.
As an aside, I signed up with Google analytics to get the same statistics. The figures differ. For 11 October Google says the site got 63 visits (not hits) and webalizers says 85 visits. All the Google code is where it should be in the web pages.