---
name: "Net::Daemon::Log"
section: "3pm"
platform: "linux"
package: "libnet-daemon-perl"
version: "0.49-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Net::Daemon::Log"
---

# Net::Daemon::Log(3pm)

Utility functions for logging

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