Hi,
I am in the process of developing an interface to mod_log_config. It can do 2
things:
* make CustomLog call perl handlers
* work as a log drain or log file
Log Drain
=========
CustomLog "@perl: My::Handler" "%I%O"
Assuming that My::Handler is defined it will receive 4 parameters here, the
request object, the input bytes according to mod_logio (the %I format), the
output bytes according to mod_logio (%O) and a newline string. Other
information can of course be specified in the format string.
Make it call perl handlers
==========================
CustomLog log/file.log "%r %{My::Fmt}^ ..."
It allocates the ^ format character and then calls My::Fmt with the request
object as the only parameter. The <> format modifiers can be used to specify
if the initial request is meant or the final one.
My::Fmt is expected to return a string that is then inserted in place of the
format specification.
Now, I have found a bug in apache that has been fixed somewhere between 2.2.9
and 2.2.15. I have also figured out a workaround. But I expect it to lead to
segfaults when the server is restarted by means of SIGHUP or SIGUSR1 and in
the old config BufferedLogs were on while in the new one they are off.
The reason for this mail is that I ask for help to figure out which apache
version has fixed the bug. So, if you have a httpd between 2.2.9 and 2.2.15
could you please try out the module.
perl Makefile.PL
make test
If the test hangs in starting up the web server and the only lines in t/logs
error_log look similar to these:
$ cat t/logs/error_log
V=2002009.
V=2002009.
buggy.
where V=... is the apache version then the bug is present.
If you like you can then go to line 169 in ModLogConfig.xs and change the
2002009 to your version+1 and retry.
The current state can be downloaded under:
http://foertsch.name/Apache2-ModLogConfig-0.01.tar.gz
BTW, if you feel urge to comment the idea or the implementation please don't
hesitate.
Thanks,
Torsten Förtsch
--
Need professional modperl support? Hire me! (http://foertsch.name)
Like fantasy? http://kabatinte.net