package Echolot::Log; # (c) 2002 Peter Palfrader # $Id: Log.pm,v 1.2 2003/01/14 06:27:41 weasel Exp $ # =pod =head1 Name Echolot::Globals - echolot global variables =head1 DESCRIPTION =cut use strict; use Carp qw{}; use Log::Dispatch::File; use Log::Dispatch; my $LOG; my @monnames = qw{Jan Feb Mar Arp May Jun Jul Aug Sep Oct Nov Dec}; sub header_log(%) { my (%msg) = @_; my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(); my $time = sprintf("%s %02d %02d:%02d:%02d", $monnames[$mon], $mday, $hour, $min, $sec); my $logstring = $time.' '. '['.uc($msg{'level'}).']'. ' '. $msg{'message'}."\n"; $logstring =~ s/(?<=.)^/ /mg; return $logstring; }; sub reopen() { $LOG->remove( 'file1' ); $LOG->add( Log::Dispatch::File->new( name => 'file1', min_level => 'debug', filename => 'pingd.log', mode => 'append', )); }; sub init(%) { my (%args) = @_; $LOG = Log::Dispatch->new( callbacks => \&header_log ); reopen(); }; sub debug($) { $LOG->debug(@_); }; sub info($) { $LOG->info(@_); }; sub notice($) { $LOG->notice(@_); }; sub warn($) { $LOG->warning(@_); }; sub warning($) { $LOG->warning(@_); }; sub error($) { $LOG->error(@_); }; sub critical($) { $LOG->critical(@_); }; sub alert($) { $LOG->alert(@_); }; sub emergency($) { $LOG->emergency(@_); }; sub logdie($) { my ($msg) = @_; critical($msg); die($msg); }; sub cluck($) { my ($msg) = @_; my $longmess = Carp::longmess(); $longmess =~ s/^/ /mg; $msg .= "\n".$longmess; warning($msg); }; sub confess($) { my ($msg) = @_; my $longmess = Carp::longmess(); $longmess =~ s/^/ /mg; $msg .= "\n".$longmess; critical($msg); die($msg); }; 1; # vim: set ts=4 shiftwidth=4: