Bugorr has asked for the wisdom of the Perl Monks concerning the following question:

This node falls below the community's threshold of quality. You may see it by logging in.

Replies are listed 'Best First'.
Re: Sys:syslog
by davidrw (Prior) on Aug 26, 2005 at 17:37 UTC
    Have you read the documentation for Sys::Syslog ? If the Synopsis and Examples sections there weren't sufficient, please post (or update above) a more detailed question (and code?) with why the example didn't work.
Re: Sys:syslog
by philcrow (Priest) on Aug 26, 2005 at 18:59 UTC
    On Linux (and probably other unices), there is a file called /etc/syslog.conf which governs where your output will go. You can add a line like
    local2.* /var/log/your_log_name
    This defines the local2 category for your use.

    Include Sys::Syslog in your script or module:

    use Sys::Syslog qw(:DEFAULT setlogsock);
    Then make a sub like this one:
    sub syslog_event { my ( $type, $message ) = @_; Sys::Syslog::setlogsock( 'unix' ); openlog( 'daemon_name', '', 'local2' ); $message =~ s/\s+$//; syslog( $type, $message ); closelog(); return(); } # END syslog_event
    Then call syslog_event as needed passing it one of the allowed types and your message:
    syslog_event( 'info', 'daemon starting' );
    The types are taken from the system types. Look in
    man 3 syslog
    for 'level'. You'll see things like LOG_INFO, the type you need is everything after LOG_. You can use lower case if you like.

    Phil