agent::channel(3)
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 cre
ate "Log::Agent::Channel" instances for each logging chan
nel 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 descrip
tor, as specified by its file handle: an IO::Handle
object, or a GLOB reference such as ILE. 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 log
files, 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 "0 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 prior
ity, 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::Han_
dle(3), Log::Agent::Channel::Syslog(3), Log::Agent::Log_
ger(3).