in reply to Sys:syslog

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