|
|
| |
Mail::SpamAssassin::Logger(3) |
User Contributed Perl Documentation |
Mail::SpamAssassin::Logger(3) |
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 !$^S;
};
- 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,
escape => $escape)
- "socket" is the type the syslog
("unix" or "inet").
"facility" is the syslog facility
(typically "mail").
If optional "escape" is
true, all non-ascii characters are escaped for safe output: backslashes
change to \\ and non-ascii chars to \x{XX} or \x{XXXX} (Unicode). If not
defined, pre-4.0 style sanitizing is used ( tr/\x09\x20\x00-\x1f/_/s
).
Escape value can be overridden with environment variable
"SA_LOGGER_ESCAPE".
- add(method => 'file', filename => $file, escape => $escape)
- "filename" is the name of the log file.
"escape" works as described above.
- add(method => 'stderr', escape => $escape)
- No options are needed for stderr logging, just don't close stderr first.
"escape" works as described above.
- 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.
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |