Courier::Filter::Logger - Abstract base class for loggers used by the
Courier::Filter framework
use Courier::Filter::Logger::My; # Need to use a non-abstract sub-class.
my $logger = Courier::Filter::Logger::My->new(%options);
# For use in an individual filter module:
my $module = Courier::Filter::Module::My->new(
...
logger => $logger,
...
);
# For use as a global Courier::Filter logger object:
my $filter = Courier::Filter->new(
...
logger => $logger,
...
);
package Courier::Filter::Logger::My;
use base qw(Courier::Filter::Logger);
Sub-classes of
Courier::Filter::Logger are used by the
Courier::Filter mail filtering framework and its filter modules for the
logging of errors and message rejections to arbitrary targets, like file
handles or databases.
When overriding a method in a derived class, do not forget calling the inherited
method from your overridden method.
The following constructor is provided and may be overridden:
-
new(%options): returns
Courier::Filter::Logger
- Creates a new logger using the %options given as a list of
key/value pairs. Initializes the logger, by creating/opening I/O handles,
connecting to databases, etc..
"Courier::Filter::Logger::new()" creates a hash-ref as an object
of the invoked class, and stores the %options in it, but does nothing
else.
The following destructor is provided and may be overridden:
- destroy
- Uninitializes the logger, by closing I/O handles,
disconnecting from databases, etc..
"Courier::Filter::Logger::destroy()" does nothing. Sub-classes may
override this method and define clean-up behavior.
The following instance methods are provided and may be overridden:
- log_error($text)
- Logs the error message given as $text (a string which may
contain newlines).
"Courier::Filter::Logger::log_error()" does nothing and should be
overridden.
-
log_rejected_message($message,
$reason)
- Logs the Courier::Message given as $message as
having been rejected due to $reason (a string which may contain newlines).
"Courier::Filter::Logger::log_rejected_message()" does nothing and
should be overridden.
Courier::Filter, Courier::Filter::Module.
For a list of prepared loggers that come with Courier::Filter, see "Bundled
Courier::Filter loggers" in Courier::Filter::Overview.
For AVAILABILITY, SUPPORT, and LICENSE information, see
Courier::Filter::Overview.
Julian Mehnle <
[email protected]>