[Koha-patches] [PATCH] Bug 16436 - Allow action logs to be logged to the koha log file

Srdjan srdjan at catalyst.net.nz
Wed Jun 1 04:15:04 CEST 2016


From: Kyle M Hall <kyle at bywatersolutions.com>

Test Plan:
1) Ensure that your Koha::Logger configuration is in good working order
2) Apply this patch
3) Modify the first line of your log4perl.conf file from:
    log4perl.logger.intranet = WARN, INTRANET
   to
    log4perl.logger.intranet = INFO, INTRANET
4) Change a system preference setting
5) Note the new line in your log file!

Signed-off-by: Srdjan <srdjan at catalyst.net.nz>
---
 C4/Log.pm | 39 +++++++++++++++++++++++++++++++--------
 1 file changed, 31 insertions(+), 8 deletions(-)

diff --git a/C4/Log.pm b/C4/Log.pm
index de5f1d0..cff1e6f 100644
--- a/C4/Log.pm
+++ b/C4/Log.pm
@@ -24,8 +24,11 @@ package C4::Log;
 use strict;
 use warnings;
 
+use JSON qw( to_json );
+
 use C4::Context;
 use Koha::DateUtils;
+use Koha::Logger;
 
 use vars qw(@ISA @EXPORT);
 
@@ -77,6 +80,26 @@ sub logaction {
     my $sth=$dbh->prepare("Insert into action_logs (timestamp,user,module,action,object,info) values (now(),?,?,?,?,?)");
     $sth->execute($usernumber,$modulename,$actionname,$objectnumber,$infos);
     $sth->finish;
+
+    my $logger = Koha::Logger->get(
+        {
+            interface => 'intranet',
+            category  => "ActionLogs.$modulename.$actionname"
+        }
+    );
+    $logger->info(
+        sub {
+            "ACTION LOG: " . to_json(
+                {
+                    user   => $usernumber,
+                    module => $modulename,
+                    action => $actionname,
+                    object => $objectnumber,
+                    info   => $infos
+                }
+            );
+        }
+    );
 }
 
 =item cronlogaction
@@ -144,10 +167,10 @@ sub displaylog {
 		SELECT action_logs.timestamp, action_logs.action, action_logs.info,
 				borrowers.cardnumber, borrowers.surname, borrowers.firstname, borrowers.userid,
         		biblio.biblionumber, biblio.title, biblio.author
-        FROM action_logs 
-		LEFT JOIN borrowers ON borrowers.borrowernumber=action_logs.user 
+        FROM action_logs
+		LEFT JOIN borrowers ON borrowers.borrowernumber=action_logs.user
         LEFT JOIN  biblio   ON action_logs.object=biblio.biblionumber
-        WHERE action_logs.module = 'cataloguing' 
+        WHERE action_logs.module = 'cataloguing'
 	|;
 	my %filtermap = ();
     if ($modulename eq "catalogue" or $modulename eq "acqui") {
@@ -158,13 +181,13 @@ sub displaylog {
 		);
     } elsif ($modulename eq "members") {
         $strsth=qq|
-		SELECT action_logs.timestamp, action_logs.action, action_logs.info, 
+		SELECT action_logs.timestamp, action_logs.action, action_logs.info,
         		borrowers.cardnumber, borrowers.surname, borrowers.firstname, borrowers.userid,
         		bor2.cardnumber, bor2.surname, bor2.firstname, bor2.userid
-        FROM action_logs 
-		LEFT JOIN borrowers ON borrowers.borrowernumber=action_logs.user 
+        FROM action_logs
+		LEFT JOIN borrowers ON borrowers.borrowernumber=action_logs.user
 		LEFT JOIN borrowers as bor2 ON action_logs.object=bor2.borrowernumber
-        WHERE action_logs.module = 'members' 
+        WHERE action_logs.module = 'members'
 		|;
 		%filtermap = (
 		       user => 'borrowers.surname',
@@ -204,7 +227,7 @@ sub displaylog {
 
 $logs = GetLogs($datefrom,$dateto,$user,\@modules,$action,$object,$info);
 
-Return: 
+Return:
 C<$logs> is a ref to a hash which containts all columns from action_logs
 
 =cut
-- 
2.7.4


More information about the Koha-patches mailing list