NAME
Log::Agent::Driver::Apache - Use mod_perl with standard logger.
SYNOPSIS
use Log::Agent;
use Log::Agent::Driver::Apache;
..
# Make the driver.
my $driver = Log::Agent::Driver::Apache->make();
# Tell Log::Agent to use it.
logconfig(-driver => $driver);
# later on, in the vastness name-space, far far away..
logerr("Use the source, Luke");
DESCRIPTION
A Log::Agent::Driver module for Apache.
Since Log::Agent is the standard way for modules to log output, or rather it's supposed to be, but Apache with mod_perl has different ideas about logging, this module attempts to translate Log::Agent calls over to Apache::Log.
Part of a bigger project to port some older mod_perl stuff to the newer mod_perl 2.0, I thought CPAN might have a use for this.
One of the advantages of this style is that you can use a different driver for Log::Agent for out-of-apache testing, use this driver while running under mod_perl. Any modules you may have that are not tied to mod_perl can continue to run in both environments. Later on, if your mod_perl application grows or you feel some need to switch to a syslog style logger, just use one of the other Log::Agent drivers.
EXPORT
None, this is a driver for Log::Agent.
METHODS
- make(%options)
-
This is the constructor for this driver, using the Log::Agent convention of prefixing option keys with a dash.
Options are
- -log
-
An Apache2::Log::Request or Apache2::Log::Server object. This is optional and defaults to an Apache2::Log::Server object. I wouldn't set this to an Apache2::Log::Request if I were you, unless you were prepared to configure it on each request.
Note that the default is the main server, not a virtual host.
- channel_eq()
-
Always returns true. (Even if apache is configured in ways that involve multiple files/logs)
Log::Agent::Driver requires this method.
- write($channel,$priority,$logstring)
-
This is the required Log::Agent::Driver->write() method, after the priority has been mapped, it calls on a method of Apache::Log::Server.
SEE ALSO
Log::Agent Log::Agent::Driver mod_perl Apache2::Log
h2xs suggested I have a web site for modules. Here is one: http://www.geniegate.com/other/log_agent/.
AUTHOR
Jamie Hoglund http://www.geniegate.com/contact.php
Cough, it sounds like "hoaglund" :-)
(I won't use my email address for fear of overworking my poor old machine running spam assassin. Sorry!)
COPYRIGHT AND LICENSE
Copyright (C) 2005 by Jamie Hoglund
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available. (Actually, it'll probably work with earlier versions too.)
BUGS
I'm not real happy with the way it defaults to using an Apache::Log::Server object for logging. Using an Apache::Log::Request would mean reconfiguring the driver in each handler instance (Which would make it inconvenient to use.)
There are probably other bugs waiting to be uncovered.