X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Flog.pm;h=88b82217f4689878cea36fa4357f5eca5f5848ad;hb=a354fed1dedc65cf62e63d940e1cfb9c4364e6d3;hp=b8f51cd13ac905224e770eec6a278c57c8ba04c8;hpb=5f563d5ac7e6e1e93cca382baa42ee106f3db5a0;p=freeside.git diff --git a/FS/FS/log.pm b/FS/FS/log.pm index b8f51cd13..88b82217f 100644 --- a/FS/FS/log.pm +++ b/FS/FS/log.pm @@ -7,6 +7,7 @@ use FS::UID qw( dbh driver_name ); use FS::log_context; use FS::log_email; use FS::upgrade_journal; +use Tie::IxHash; =head1 NAME @@ -46,8 +47,7 @@ this will be set to that agentnum. =item tablenum - foreign key to that table. -=item level - log level: 'debug', 'info', 'notice', 'warning', 'error', -'critical', 'alert', 'emergency'. +=item level - log level: 'debug', 'info', 'warning', 'error', 'critical', =item message - contents of the log entry @@ -116,7 +116,7 @@ sub insert { 'msgtype' => 'admin', 'to' => $log_email->to_addr, 'substitutions' => { - 'loglevel' => $FS::Log::LEVELS[$self->level], # which has hopefully been loaded... + 'loglevel' => $FS::Log::LEVELS{$self->level}, # which has hopefully been loaded... 'logcontext' => $log_email->context, # use the one that triggered the email 'logmessage' => $self->message, }, @@ -390,24 +390,19 @@ sub _upgrade_data { return if FS::upgrade_journal->is_done('log__remap_levels'); tie my %levelmap, 'Tie::IxHash', -# 0 => 0, #debug -# 1 => 1, #info 2 => 1, #notice -> info - 3 => 2, #warning - 4 => 3, #error - 5 => 4, #critical - 6 => 4, #alert -> critical - 7 => 4, #emergency -> critical + 6 => 5, #alert -> critical + 7 => 5, #emergency -> critical ; # this method should never autocommit # should have been set in upgrade, but just in case... local $FS::UID::AutoCommit = 0; - # FS::log has no replace method - # in practice, only debug/info/warning/error were used, - # so this should only hit warning/error + # in practice, only debug/info/warning/error appear to have been used, + # so this probably won't do anything, but just in case foreach my $old (keys %levelmap) { + # FS::log has no replace method my $sql = 'UPDATE log SET level=' . dbh->quote($levelmap{$old}) . ' WHERE level=' . dbh->quote($old); warn $sql unless $opts{'quiet'}; my $sth = dbh->prepare($sql) or die dbh->errstr; @@ -416,7 +411,9 @@ sub _upgrade_data { } foreach my $log_email ( - qsearch('log_email',{ 'min_level' => { 'op' => '>=', 'value' => '2' } }) + qsearch('log_email',{ 'min_level' => 2 }), + qsearch('log_email',{ 'min_level' => 6 }), + qsearch('log_email',{ 'min_level' => 7 }), ) { $log_email->min_level($levelmap{$log_email->min_level}); my $error = $log_email->replace;