summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog1
-rw-r--r--LedgerSMB/Log.pm81
-rw-r--r--LedgerSMB/Sysconfig.pm6
3 files changed, 88 insertions, 0 deletions
diff --git a/Changelog b/Changelog
index e8ffc0ec..31af70e8 100644
--- a/Changelog
+++ b/Changelog
@@ -1,5 +1,6 @@
Changelog for LedgerSMB 1.2.0
+* Added logging module (Jason R)
* Corrected parsing of numbers so that they are multi-run safe (Chris T)
* Added first version of rpm spec from Mads Kiilerich (Chris T)
* Added "1 000.00" number format (Chris T)
diff --git a/LedgerSMB/Log.pm b/LedgerSMB/Log.pm
new file mode 100644
index 00000000..954a1a6b
--- /dev/null
+++ b/LedgerSMB/Log.pm
@@ -0,0 +1,81 @@
+=head1 NAME
+
+LedgerSMB::Log - LedgerSMB logging and debugging framework
+
+=head1 SYOPSIS
+
+This module maintains a connection to the LedgerSMB log file
+(Seperate from the apche error log, for now)
+
+=head1 METHODS
+
+This module is loosly based on Apache::Log.
+
+Available methods: (in order, most to least severe)
+
+=over 4
+
+=item emerg
+
+=item alert
+
+=item crit
+
+=item error
+
+=item warn
+
+=item notice
+
+=item info
+
+=item debug
+
+=back
+
+=cut
+
+package LedgerSMB::Log;
+use strict;
+use warnings;
+use IO::File;
+use Data::Dumper;
+use LedgerSMB::Sysconfig;
+
+
+our $fh;
+
+sub print {
+ if (!$LSMBConfig::logging){
+ return 0;
+ }
+ shift;
+ unless($fh) {
+ # TODO: this is grosly wrong, but so is this module in the first place.
+ # the log messages *should* end up in the apache log, but that will
+ # hopefully be corrected in the future.
+
+ $fh=IO::File->new('>>users/ledger-smb.log');
+ $fh->autoflush(1);
+ __PACKAGE__->print('general',"Log file opened");
+ }
+
+ $fh->print(sprintf('[%s] [%s] %i %s',
+ scalar(localtime),
+ +shift,
+ $$,
+ join(' ',@_))."\n");
+}
+
+
+sub emerg { shift->print('emerg',@_) }
+sub alert { shift->print('alert',@_) }
+sub crit { shift->print('crit',@_) }
+sub error { shift->print('error',@_) }
+sub warn { shift->print('warn',@_) }
+sub notice { shift->print('notice',@_) }
+sub info { shift->print('info',@_) }
+sub debug { shift->print('debug',@_) }
+sub dump { shift->print('dump',Dumper(@_)) }
+
+1;
diff --git a/LedgerSMB/Sysconfig.pm b/LedgerSMB/Sysconfig.pm
index fdc27715..983675ff 100644
--- a/LedgerSMB/Sysconfig.pm
+++ b/LedgerSMB/Sysconfig.pm
@@ -5,3 +5,9 @@
package LSMBConfig;
$session='DB';
+$logging=0; # No logging on by default
+
+
+
+
+1;