- =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
- =item longmess
- This uses Carp to make a debug message with the full stack backtrace, including function arguments, where Carp can infer them.
- =item dump
- This uses Data::Dumper to dump the contents of a data structure as a debug message.
- =back
- =cut
- package LedgerSMB::Log;
- use strict;
- use warnings;
- use IO::File;
- use Data::Dumper;
- use LedgerSMB::Sysconfig;
- use Carp ();
- our $VERSION = '1.0.0';
- our $log_line;
- sub print {
- if ( !$LedgerSMB::Sysconfig::logging ) {
- return 0;
- }
- shift;
- $log_line = sprintf( '[%s] [%s] %i %s',
- scalar(localtime), +shift, $$, join( ' ', @_ ) )
- . "\n";
- print STDERR $log_line;
- }
- 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 longmess { shift->print( 'debug', Carp::longmess(@_) ) }
- sub dump {
- my $self = shift;
- my $d = Data::Dumper->new( [@_] );
- $d->Sortkeys(1);
- $self->print( 'debug', $d->Dump() );
- }
- 1;
|