diff options
-rw-r--r-- | lib/Mojo/Log/Syslog.pm | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/lib/Mojo/Log/Syslog.pm b/lib/Mojo/Log/Syslog.pm index 3e5992c..87b9013 100644 --- a/lib/Mojo/Log/Syslog.pm +++ b/lib/Mojo/Log/Syslog.pm @@ -11,16 +11,18 @@ our $VERSION = '1.01'; sub new { my $class = shift; local %_ = @_; - my $ident = delete $_{ident} || basename($0); - my $facility = delete $_{facility} || LOG_USER; - my $level = delete $_{level} || 'debug'; - my $logopt = delete $_{logopt} || 'ndelay,pid'; - if (ref($logopt) eq 'ARRAY') { - $logopt = join(',', @$logopt); + + $_{level} ||= 'debug'; + unless ($_{parent}) { + my $ident = delete $_{ident} || basename($0); + my $facility = delete $_{facility} || LOG_USER; + my $logopt = delete $_{logopt} || 'ndelay,pid'; + if (ref($logopt) eq 'ARRAY') { + $logopt = join(',', @$logopt); + } + openlog($ident, $logopt, $facility); } - croak "unrecognized arguments" if keys(%_); - openlog($ident, $logopt, $facility); - return $class->SUPER::new(level => $level); + return $class->SUPER::new(%_); } sub debug { shift->_syslog(debug => LOG_DEBUG => @_) } |