NAME¶
Net::Daemon::Log - Utility functions for logging
SYNOPSIS¶
# Choose logging method: syslog or Win32::EventLog
$self->{'facility'} = 'mail'; # Default: Daemon
$self->{'logfile'} = undef; # Default
# Choose logging method: stderr
$self->{'logfile'} = 1;
# Choose logging method: IO handle
my $file = IO::File->new("my.log", "a");
$self->{'logfile'} = $file;
# Debugging messages (equivalent):
$self->Log('debug', "This is a debugging message");
$self->Debug("This is a debugging message");
# Error messages (equivalent):
$self->Log('err', "This is an error message");
$self->Error("This is an error message");
# Fatal error messages (implies 'die')
$self->Fatal("This is a fatal error message");
WARNING¶
THIS IS ALPHA SOFTWARE. It is *only* 'Alpha' because the interface (API) is not
finalised. The Alpha status does not reflect code quality or stability.
DESCRIPTION¶
Net::Daemon::Log is a utility class for portable logging messages. By default it
uses syslog (Unix) or Win32::EventLog (Windows), but logging messages can also
be redirected to stderr or a log file.
Generic Logging¶
$self->Log($level, $msg, @args);
This is the generic interface. The logging level is in syslog style, thus one of
the words 'debug', 'info', 'notice', 'err' or 'crit'. You'll rarely need info
and notice and I can hardly imagine a reason for crit (critical). In 95% of
all cases debug and err will be sufficient.
The logging string $msg is a format string similar to printf.
Utility methods¶
$self->Debug($msg, @args);
$self->Error($msg, @args);
$self->Fatal($msg, @args);
These are replacements for logging with levels debug and err. The difference
between the latter two is that Fatal includes throwing a Perl exception.
Chossing a logging target¶
By default logging will happen to syslog (Unix) or EventLog (Windows). However
you may choose logging to stderr by setting
$self->{'logfile'} = 1;
This is required if neither of syslog and EventLog is available. An alternative
option is setting
$self->{'logfile'} = $handle;
where $handle is any object supporting a
print method, for example an
IO::Handle object. Usually the logging target is choosen as soon as you call
$self->
Log() the first time. However, you may force choosing the
target by doing a
$self->OpenLog();
before calling Log the first time.
MULTITHREADING¶
The Multithreading capabitities of this class are depending heavily on the
underlying classes Sys::Syslog, Win32::EventLog or IO::Handle. If they are
thread safe, you can well assume that this package is too. (The exception
being that you should better call $self->
OpenLog() before
threading.)
AUTHOR AND COPYRIGHT¶
Net::Daemon is Copyright (C) 1998, Jochen Wiedmann
Am Eisteich 9
72555 Metzingen
Germany
Phone: +49 7123 14887
Email: joe@ispsoft.de
All rights reserved.
You may distribute this package under the terms of either the GNU
General Public License or the Artistic License, as specified in the
Perl README file.
SEE ALSO¶
Net::Daemon(3),
Sys::Syslog(3),
Win32::EventLog(3),
IO::Handle(3)