From 78477705aca65a60d708c2a566ae84b5f88cbc61 Mon Sep 17 00:00:00 2001 From: Srdjan Date: Tue, 9 Dec 2014 20:32:31 +1300 Subject: [PATCH] bug_13413: Koha::Log in longoverdue.pl --- misc/cronjobs/longoverdue.pl | 53 +++++++++++++++++++++++++++----------------- 1 file changed, 33 insertions(+), 20 deletions(-) diff --git a/misc/cronjobs/longoverdue.pl b/misc/cronjobs/longoverdue.pl index 193aaaf..342c6c4 100755 --- a/misc/cronjobs/longoverdue.pl +++ b/misc/cronjobs/longoverdue.pl @@ -37,6 +37,7 @@ use C4::Context; use C4::Items; use C4::Circulation qw/LostItem/; use Getopt::Long; +use Koha::Log qw(:log set_default_logger); my $lost; # key=lost value, value=num days. my ($charge, $verbose, $confirm, $quiet); @@ -53,6 +54,16 @@ GetOptions( 'mark-returned' => \$mark_returned, ); +my $log_level = $verbose ? 'debug' : 'info'; +my %loggers; +if ($quiet) { + $loggers{File} = {min_level => $log_level, filename => 'longoverdue.log'}; +} else { + $loggers{Stdout} = {min_level => $log_level, }; +} +set_default_logger( %loggers ); + + my $usage = << 'ENDUSAGE'; longoverdue.pl : This cron script set lost values on overdue items and optionally sets charges the patron's account for the item's replacement price. It is designed to be run as a nightly job. The command line options that globally @@ -126,7 +137,7 @@ if ( ! defined($charge) ) { } unless ($confirm) { $verbose = 1; # If you're not running it for real, then the whole point is the print output. - print "### TEST MODE -- NO ACTIONS TAKEN ###\n"; + log_info { "### TEST MODE -- NO ACTIONS TAKEN ###" }; } # In my opinion, this line is safe SQL to have outside the API. --atz @@ -168,14 +179,18 @@ foreach my $startrange (sort keys %$lost) { if( my $lostvalue = $lost->{$startrange} ) { my ($date1) = bounds($startrange); my ($date2) = bounds( $endrange); - # print "\nRange ", ++$i, "\nDue $startrange - $endrange days ago ($date2 to $date1), lost => $lostvalue\n" if($verbose); - $verbose and - printf "\nRange %s\nDue %3s - %3s days ago (%s to %s), lost => %s\n", ++$i, - $startrange, $endrange, $date2, $date1, $lostvalue; + #log_debug { "\nRange ", ++$i, "\nDue $startrange - $endrange days ago ($date2 to $date1), lost => $lostvalue" }; + log_debug { + sprintf "\nRange %s\nDue %3s - %3s days ago (%s to %s), lost => %s", + ++$i, $startrange, $endrange, $date2, $date1, $lostvalue; + }; $sth_items->execute($startrange, $endrange, $lostvalue); $count=0; while (my $row=$sth_items->fetchrow_hashref) { - printf ("Due %s: item %5s from borrower %5s to lost: %s\n", $row->{date_due}, $row->{itemnumber}, $row->{borrowernumber}, $lostvalue) if($verbose); + log_debug { + sprintf "Due %s: item %5s from borrower %5s to lost: %s", + $row->{date_due}, $row->{itemnumber}, $row->{borrowernumber}, $lostvalue; + }; if($confirm) { ModItem({ itemlost => $lostvalue }, $row->{'biblionumber'}, $row->{'itemnumber'}); LostItem($row->{'itemnumber'}, $mark_returned) if( $charge && $charge eq $lostvalue); @@ -196,20 +211,18 @@ foreach my $startrange (sort keys %$lost) { $endrange = $startrange; } -sub summarize ($$) { - my $arg = shift; # ref to array - my $got_items = shift || 0; # print "count" line for items - my @report = @$arg or return undef; +log_info { my $i = 0; - for my $range (@report) { - printf "\nRange %s\nDue %3s - %3s days ago (%s to %s), lost => %s\n", ++$i, - map {$range->{$_}} qw(startrange endrange date2 date1 lostvalue); - $got_items and printf " %4s items\n", $range->{count}; - } + join "", + "\n### LONGOVERDUE SUMMARY ###", + map ( + sprintf ( + "\nRange %s\nDue %3s - %3s days ago (%s to %s), lost => %s\n %4s items\n", + ++$i, @$_{qw(startrange endrange date2 date1 lostvalue count)} + ), + @report + ), + "\nTOTAL: $total items\n" + ; } -if (!$quiet){ - print "\n### LONGOVERDUE SUMMARY ###"; - summarize (\@report, 1); - print "\nTOTAL: $total items\n"; -} -- 1.9.1