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.
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)