NAME¶
Log::Agent::Channel - ancestor class for all Log::Agent channels
SYNOPSIS¶
@Log::Agent::Channel::XXX::ISA = qw(Log::Agent::Channel);
DESCRIPTION¶
The "Log::Agent::Channel" class is the root class from which all
"Log::Agent" channels inherit. It is a
deferred class,
meaning that it cannot be instantiated directly. All the deferred routines
need to be implemented by its heirs to form a valid driver.
Internally, the various "Log::Agent::Driver" objects create
"Log::Agent::Channel" instances for each logging channel defined at
driver creation time. The channels are therefore architecturally hidden within
"Log::Agent", since this module only provides redefined mappings for
the various
logxxx() routines (
logerr(),
logwarn(),
logdie(), etc...).
However, this does not mean that channel classes cannot be used externally: the
"Log::Agent::Logger" extension makes "Log::Agent::Channel"
objects architecturally visible, thereby offering an application-level logging
API that can be redirected to various places transparently for the
application.
CHANNEL LIST¶
The following channels are currently made available by "Log::Agent".
More channels can be defined by the "Log::Agent::Logger" extension:
- Log::Agent::Channel::File
- This channel writes logs to files, defined by their path or via a magical
opening sequence such as "|cmd". See
Log::Agent::Channel::File.
- Log::Agent::Channel::Handle
- This channel writes logs to an already opened descriptor, as specified by
its file handle: an IO::Handle object, or a GLOB reference such as \*FILE.
See Log::Agent::Channel::Handle.
- Log::Agent::Channel::Syslog
- This channel redirects logs to the syslogd(8) daemon, which will
then handle the dispatching to various logfiles, based on its own
configuration. See Log::Agent::Channel::Syslog.
INTERFACE¶
You need not read this section if you're only
using
"Log::Agent". However, if you wish to
implement another
channel, then this section might be of interest.
The following routines are
deferred and therefore need to be defined by
the heir:
- write($priority, $logstring)
- Emit the log entry held in $logstring, at priority $priority. A trailing
"\n" is added to the $logstring, if needed (i.e. if the physical
entity does not do it already, like syslog does).
The $priority argument must be a valid syslog priority, i.e. one of the
following strings: "emerg", "alert", "crit",
"err", "warning", "notice",
"info", "debug".
The $logstring may not really be a plain string. It can actually be a
Log::Agent::Message object with an overloaded stringification routine, so
the illusion should be complete.
- close
- Close the channel.
- make
- This is the creation routine. Its signature varies for each channel,
naturally.
AUTHOR¶
Raphael Manfredi
<Raphael_Manfredi@pobox.com>
SEE ALSO¶
Log::Agent::Channel::File(3),
Log::Agent::Channel::Handle(3),
Log::Agent::Channel::Syslog(3),
Log::Agent::Logger(3).