man Log::Agent::Channel () - ancestor class for all Log::Agent channels
NAME
Log::Agent::Channel - ancestor class for all Log::Agent channels
SYNOPSIS
@Log::Agent::Channel::XXX::ISA = qw(Log::Agent::Channel);
DESCRIPTION
The CWLog::Agent::Channel class is the root class from which all CWLog::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 CWLog::Agent::Driver objects create CWLog::Agent::Channel instances for each logging channel defined at driver creation time. The channels are therefore architecturally hidden within CWLog::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 CWLog::Agent::Logger extension makes CWLog::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 CWLog::Agent. More channels can be defined by the CWLog::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 CWLog::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: Emit the log entry held in CW$logstring, at priority CW$priority. A trailing \n is added to the CW$logstring, if needed (i.e. if the physical entity does not do it already, like syslog does). The CW$priority argument must be a valid syslog priority, i.e. one of the following strings: emerg, alert, crit, err, warning, notice, info, debug. The CW$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>