Log::Report::Dispatcher::Syslog(3)

NAME
Log::Report::Dispatcher::Syslog - send messages to syslog

INHERITANCE
 Log::Report::Dispatcher::Syslog
   is a Log::Report::Dispatcher

SYNOPSIS
 # add syslog dispatcher
 dispatcher SYSLOG => 'syslog', accept => 'NOTICE-'
   , format_reason => 'IGNORE'
   , to_prio => [ 'ALERT-' => 'err' ];

 # disable default dispatcher, when daemon
 dispatcher close => 'default';

DESCRIPTION
This dispatchers produces output to syslog, based on the Sys::Syslog module (which will NOT be automatically installed for you, because some systems have a problem with this dependency).

The REASON for a message often uses names which are quite similar to the log-levels used by syslog. However: they have a different purpose. The REASON is used by the programmer to indicate the cause of the message: whether it was able to handle a certain situation. The syslog levels are there for the user's of the program (with syslog usually the system administrators). It is not unusual to see a "normal" error or mistake as a very serious situation in a production environment. So, you may wish to translate any message above reason MISTAKE into a LOG_CRIT.

The default translation table is list below. You can change the mapping using new(to_prio). See example in SYNOPSIS.

  TRACE   => LOG_DEBUG    ERROR   => LOG_ERR
  ASSERT  => LOG_DEBUG    FAULT   => LOG_ERR
  INFO    => LOG_INFO     ALERT   => LOG_ALERT
  NOTICE  => LOG_NOTICE   FAILURE => LOG_EMERG
  WARNING => LOG_WARNING  PANIC   => LOG_CRIT
  MISTAKE => LOG_WARNING

Extends "DESCRIPTION" in Log::Report::Dispatcher.

METHODS
Extends "METHODS" in Log::Report::Dispatcher.

  Constructors
Extends "Constructors" in Log::Report::Dispatcher.

$obj->close()
    Inherited, see "Constructors" in Log::Report::Dispatcher

Log::Report::Dispatcher::Syslog->new($type, $name, %options)
    With syslog, people tend not to include the REASON of the message in the logs, because that is already used to determine the destination of the message.

     -Option        --Defined in             --Default
      accept          Log::Report::Dispatcher  depend on mode
      charset                                  'utf8'
      facility                                 'user'
      flags                                    'pid,nowait'
      format                                   <unchanged>
      format_reason   Log::Report::Dispatcher  'IGNORE'
      identity                                 <basename $0>
      include_domain                           <false>
      locale          Log::Report::Dispatcher  <system locale>
      logsocket                                undef
      mode            Log::Report::Dispatcher  'NORMAL'
      to_prio                                  []

    accept => REASONS
    charset => CHARSET
        Translate the text-strings into the specified charset, otherwise the sysadmin may get unreadable text.

    facility => STRING
        The possible values for this depend (a little) on the system. POSIX only defines "user", and "local0" up to "local7".

    flags => STRING
        Any combination of flags as defined by Sys::Syslog, for instance "pid", "ndelay", and "nowait".

    format => CODE
        [1.10] With a CODE reference you get your hands on the text before it gets sent to syslog. The three parameters are: the (translated) text, the related text domain object, and the message object. You may want to use context information from the latter.

        [1.19] After the three positional parameters, there may be a list of pairs (named parameters) with additional info. This may contain a "location" with an ARRAY of information produced by caller() about the origin of the exception.

    format_reason => 'UPPERCASE'|'LOWERCASE'|'UCFIRST'|'IGNORE'|CODE
    identity => STRING
    include_domain => BOOLEAN
        [1.00] Include the text-domain of the message in each logged message.

    locale => LOCALE
    logsocket => 'unix'|'inet'|'stream'|HASH
        If specified, the log socket type will be initialized to this before openlog() is called. If not specified, the system default is used.

    mode => 'NORMAL'|'VERBOSE'|'ASSERT'|'DEBUG'|0..3
    to_prio => ARRAY-of-PAIRS
        See reasonToPrio().

  Accessors
Extends "Accessors" in Log::Report::Dispatcher.

$obj->format( [CODE] )
    Returns the CODE ref which formats the syslog line.

$obj->isDisabled()
    Inherited, see "Accessors" in Log::Report::Dispatcher

$obj->mode()
    Inherited, see "Accessors" in Log::Report::Dispatcher

$obj->name()
    Inherited, see "Accessors" in Log::Report::Dispatcher

$obj->needs( [$reason] )
    Inherited, see "Accessors" in Log::Report::Dispatcher

$obj->type()
    Inherited, see "Accessors" in Log::Report::Dispatcher

  Logging
Extends "Logging" in Log::Report::Dispatcher.

$obj->addSkipStack(@CODE)
Log::Report::Dispatcher::Syslog->addSkipStack(@CODE)
    Inherited, see "Logging" in Log::Report::Dispatcher

$obj->collectLocation()
Log::Report::Dispatcher::Syslog->collectLocation()
    Inherited, see "Logging" in Log::Report::Dispatcher

$obj->collectStack( [$maxdepth] )
Log::Report::Dispatcher::Syslog->collectStack( [$maxdepth] )
    Inherited, see "Logging" in Log::Report::Dispatcher

$obj->log(HASH-$of-%options, $reason, $message, $domain)
    Inherited, see "Logging" in Log::Report::Dispatcher

$obj->reasonToPrio($reason)
    Returns a level which is understood by syslog(3), based on a translation table. This can be changed with new(to_prio).

$obj->skipStack()
    Inherited, see "Logging" in Log::Report::Dispatcher

$obj->stackTraceLine(%options)
Log::Report::Dispatcher::Syslog->stackTraceLine(%options)
    Inherited, see "Logging" in Log::Report::Dispatcher

$obj->translate(HASH-$of-%options, $reason, $message)
    Inherited, see "Logging" in Log::Report::Dispatcher

DETAILS
Extends "DETAILS" in Log::Report::Dispatcher.

SEE ALSO
This module is part of Log-Report distribution version 1.40, built on April 18, 2025. Website: http://perl.overmeer.net/CPAN/

LICENSE
Copyrights 2007-2025 by [Mark Overmeer <markov@cpan.org>]. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://dev.perl.org/licenses/