[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