diff options
-rw-r--r-- | Changelog | 1 | ||||
-rw-r--r-- | LedgerSMB/Log.pm | 81 | ||||
-rw-r--r-- | LedgerSMB/Sysconfig.pm | 6 |
3 files changed, 88 insertions, 0 deletions
@@ -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; |