UniLog
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
my %DefParam = ('Ident' => $0,
'Level' => 6,
'StdErr' => 0,
'SysLog' => 1,
'DirPerms' => 0750,
'FilePerms' => 0640,
'Truncate' => 0,
'Options' => LOG_PID() | LOG_CONS(),
'Facility' => LOG_USER(),
'SafeStr' => 1,
);
foreach (keys(%DefParam))
{
if (!defined($LogParam{$_}))
{ $LogParam{$_} = $DefParam{$_}; };
};
if (!defined($LogFacilities{$LogParam{'Facility'}}))
{
cluck sprintf("Unknown facility \"%s\", use the default facility \"%s\"\n", SafeStr($LogParam{'Facility'}), SafeStr($DefParam{'Facility'}));
$LogParam{'Facility'} = $DefParam{'Facility'};
};
my $self = {'Ident' => SafeStr($LogParam{Ident}),
'Level' => $LogParam{'Level'},
'Facility' => $LogFacilities{$LogParam{'Facility'}},
'StdErr' => $LogParam{'StdErr'},
'SysLog' => ($LogParam{'SysLog'} && $SyslogEnabled),
'SafeStr' => $LogParam{'SafeStr'},
'LogFileNameTemplate' => $LogParam{'LogFile'},
'Truncate' => $LogParam{'Truncate'},
'DirPerms' => $LogParam{'DirPerms'},
'FilePerms' => $LogParam{'FilePerms'},
'LogFileNameCurrent' => '',
'LogFileHandler' => undef,
};
if ($OpenLog)
{
$self->{'Handler'} = &{$OpenLog}($self->{'Ident'}, &{$CalcOpt}($LogParam{'Options'}), $self->{'Facility'});
if (!$self->{'Handler'})
{
$! .= ' '.$@;
return;
};
};
if (defined($self->{'LogFileNameTemplate'}))
{
&{$FileReOpen}($self);
if (!defined($self->{'LogFileNameTemplate'}))
{
$! = sprintf("Can not open file \"%s\": %s", SafeStr($self->{'LogFileNameCurrent'}), $!);
Close($self);
return;
};
};
return bless $self => $class;
};
sub emergency($$@)
{ return Message(shift, LOG_EMERG(), @_); };
sub alert($$@)
{ return Message(shift, LOG_ALERT(), @_); };
sub critical($$@)
{ return Message(shift, LOG_CRIT(), @_); };
sub error($$@)
{ return Message(shift, LOG_ERR(), @_); };
sub warning($$@)
{ return Message(shift, LOG_WARNING(), @_); };
sub notice($$@)
{ return Message(shift, LOG_NOTICE(), @_); };
sub info($$@)
{ return Message(shift, LOG_INFO(), @_); };
sub debug($$@)
{ return Message(shift, LOG_DEBUG(), @_); };
sub Message($$$@)
{
my ($self, $Level, $Format, @Args) = @_;
if ($Level < 0)
{
if ($^W) { cluck "Log level \"$Level\" adjusted from \"$Level\" to \"0\"\n"; };
$Level = 0;
}
elsif ($Level > $#LogLevels)
{
if ($^W) { cluck "Log level \"$Level\" adjusted from \"$Level\" to \"$#LogLevels\"\n"; };
$Level = $#LogLevels;
};
if ($Level <= $self->{Level})
{
my $Str = $self->{'SafeStr'} ? SafeStr(sprintf($Format, @Args)) : sprintf($Format, @Args);
if ($self->{'StdErr'})
{ print STDERR localtime()." $Level $Str\n"; };
if ($PutMsg)
{ &{$PutMsg}($self, $LogLevels[$Level], $Str); };
if (defined($self->{'LogFileNameTemplate'}))
{
if (!(&{$FileReOpen}($self)))
{
$! = sprintf("Can not open file \"%s\": %s", SafeStr($self->{'LogFileNameCurrent'}), $!);
return;
};
if (!(print {$self->{'LogFileHandler'}} localtime()." $Level $Str\n"))
{
$! = sprintf("Can not write to the file \"%s\": %s", SafeStr($self->{'LogFileNameCurrent'}), $!);
return;
};
};
};
return 1;
};
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.877 second using v1.00-cache-2.02-grep-82fe00e-cpan-48ebf85a1963 )