Mail::SpamAssassin::LoUser(Contributed Perl DocumMail::SpamAssassin::Logger(3)
NAME
Mail::SpamAssassin::Logger - SpamAssassin logging module
SYNOPSIS
use Mail::SpamAssassin::Logger;
$SIG{__WARN__} = sub {
log_message("warn", $_[0]);
};
$SIG{__DIE__} = sub {
log_message("error", $_[0]) if !$^S;
};
METHODS
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. Facility names are case-
sensitive.
If "all" is listed, then all debug facilities are implicitly
enabled, except for those explicitly disabled. A facility name may
be preceded by a "no" (case-insensitive), which explicitly disables
it, overriding the "all". For example: all,norules,noconfig,nodcc.
When facility names are given as an ordered list (array or scalar,
not a hash), the last entry applies, e.g. 'nodcc,dcc,dcc,noddc' is
equivalent to 'nodcc'. Note that currently no facility name starts
with a "no", it is advised to keep this practice with newly added
facility names to make life easier.
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 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 false if a message at the given level and with the given
facility would not 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.
perl v5.26.3 2021-04-09 Mail::SpamAssassin::Logger(3)