[Koha-patches] [PATCH] bug_13413: Koha::Log in longoverdue.pl

Srdjan srdjan at catalyst.net.nz
Mon Mar 2 02:46:10 CET 2015


---
 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


More information about the Koha-patches mailing list