From be756d0fcd03d03a43d2d873391d6cf3e46c6662 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 18 Jun 2011 07:51:28 +0000 Subject: Using a thread safe message queue for logging, preparing for multi threading jobs --- lib/PerlDaemon/ThreadedLogger.pm | 45 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 lib/PerlDaemon/ThreadedLogger.pm (limited to 'lib/PerlDaemon/ThreadedLogger.pm') diff --git a/lib/PerlDaemon/ThreadedLogger.pm b/lib/PerlDaemon/ThreadedLogger.pm new file mode 100644 index 0000000..a5a7776 --- /dev/null +++ b/lib/PerlDaemon/ThreadedLogger.pm @@ -0,0 +1,45 @@ +package PerlDaemon::ThreadedLogger; + +use strict; +use warnings; + +$| = 1; + +sub new ($$) { + my ($class, $conf) = @_; + my $self = $SELF = bless { conf => $conf }, $class; + + return $self; +} + +sub _pushmsg ($$) { + my ($self, $msg) = @_; + my $conf = $self->{conf}; + my $msgqueue = $conf->{msgqueue}; + + push @$msgqueue, $msg; +} + +sub logmsg ($$) { + my ($self, $msg) = @_; + + my $logline = localtime()." (PID $$): $msg\n"; + $self->_pushmsg($logline); + + return undef; +} + +sub err ($$) { + my ($self, $msg) = @_; + $self->logmsg($msg); + die "$msg\n"; +} + +sub warn ($$) { + my ($self, $msg) = @_; + $self->logmsg("WARNING: $msg"); + + return undef; +} + +1; -- cgit v1.2.3