Mail::SpamAssassin::Logger - SpamAssassin logging module
use Mail::SpamAssassin::Logger;
$SIG{__WARN__} = sub {
log_message("warn", $_[0]);
};
$SIG{__DIE__} = sub {
log_message("error", $_[0]) if $_[0] !~ /\bin eval\b/;
};
add_facilities(facilities)
-
Enable debug logging for specific facilities. Each facility is the area
of code to debug. Facilities can be specified as a hash reference (the
key names are used), an array reference, an array, or a comma-separated
scalar string.
-
If ``all'' is listed, then all debug facilities are enabled. Higher
priority informational messages that are suitable for logging in normal
circumstances are available with an area of ``info''. Some very verbose
messages require the facility to be specifically enabled (see
would_log
below).
- log_message($level, $message)
- log_message($level, @message)
-
Log a message at a specific level. Levels are specified as strings:
``warn'', ``error'', ``info'', and ``dbg''. The first element of the message
must be prefixed with a facility name followed directly by a colon.
- dbg(``facility: message'')
-
This is used for all low priority debugging messages.
- info(``facility: message'')
-
This is used for informational messages indicating a normal, but
significant, condition. This should be infrequently called. These
messages are typically logged when SpamAssassin is run as a daemon.
- add(method => 'syslog', socket => $socket, facility => $facility)
-
socket
is the type the syslog (``unix'' or ``inet''). facility
is the
syslog facility (typically ``mail'').
- add(method => 'file', filename => $file)
-
filename
is the name of the log file.
- add(method => 'stderr')
-
No options are needed for stderr logging, just don't close stderr first.
remove(method)
-
Remove a logging method. Only the method name needs to be passed as a
scalar.
- would_log($level, $facility)
-
Returns 0 if a message at the given level and with the given facility
would be logged. Returns 1 if a message at a given level and facility
would be logged normally. Returns 2 if the facility was specifically
enabled.
-
The facility argument is optional.
close_log()
-
Close all logs.