Realistic* automated generation of extended web log entries
* Almost
genlog is a program for generating somewhat realistic (and tunable) log entries. I use it for testing a web usage mining tool ... You can do whatever you like with it.
genlog is GPL'd, for your pleasure and mine.
With Apache you can create real extended log entries with the following directives in httpd.conf:
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" extended
CustomLog logs/extended_log extended
With genlog you can simulate a webserver responding to requests from an average load of 100 users at a time making requests at 3000 requests per minute for half an hour to the website at http://www.cs.rpi.edu/~moorthy as:
> genlog --graph=./moorthy.gr --run-for-seconds=1800 --requests-per-min=3000 --num-users=100
Voila, logs are generated as if being created by a web server.
The following command generated the following output
genlog -g ./moorthy.gr --number-requests=100 --requests-per-min=300 > example.txt 2>&1
genlog 0.0
Send patches and bug reports to morria@cs.rpi.edu
Usage: genlog [--version] [--help] --graph
[--run-for-seconds] [--number-requests] [--requests-per-min]
[--user-timeout] [--num-users] [--no-wait]
-v,--version Print version information and quit
-h,--help Print this help information and quit
-q,--quiet Be quiet ( no debug output to stderr )
-s,--run-for-seconds=<SECONDS> Generate log entries for SECONDS seconds
-n,--number-requests=<REQUESTS> Generate REQUESTS log entries
-r,--requests-per-min=<RPM> Generate RPM requests per minute
-t,--user-timeout=<TIMEOUT> Have users tend leave by TIMEOUT seconds
-u,--num-users=<USERS> Try to have USERS random active users at any time
-w,--no-wait Do not pause between log entries ( timestamps are
not adjusted )