logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Net::Daemon::Log - Utility functions for logging

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.

   GenericLogging
           $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.

   Utilitymethods
           $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.

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

Name

       Net::Daemon::Log - Utility functions for logging

See Also

Net::Daemon(3), Sys::Syslog(3), Win32::EventLog(3), IO::Handle(3)

perl v5.38.2                                       2024-03-07                              Net::Daemon::Log(3pm)

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.

See Also