--- trunk/lib/WebPAC/Common.pm 2005/07/24 11:17:44 29 +++ trunk/lib/WebPAC/Common.pm 2006/01/08 20:27:06 363 @@ -15,11 +15,11 @@ =head1 VERSION -Version 0.01 +Version 0.02 =cut -our $VERSION = '0.01'; +our $VERSION = '0.02'; =head1 SYNOPSYS @@ -143,7 +143,12 @@ with C flag, it will turn logging to debug level. This function will also read C value from current object and try -to read that as configuration file if it exists. +to read that as configuration file if it exists, if it doesn't it will +fallback to default C. + +You can disable all logging by adding C to constructor of WebPAC +object. Object in C class will disable logging +automatically. =cut @@ -153,13 +158,12 @@ $file ||= $self->{'log_conf'}; $file = 'conf/log.conf'; my $name = (caller(2))[3] || caller; - if ($file) { - warn "# $name is using $file logger\n" if ($log_debug); - Log::Log4perl->init($file); - } else { - my $conf = q( ); - if ($self->{'debug'}) { - $conf = << '_log4perl_'; + + my $conf = q( ); + if ($self->{'no_log'}) { + warn "# $name disabled logging\n" if ($log_debug); + } elsif ($self->{'debug'}) { + $conf = << '_log4perl_'; log4perl.rootLogger=INFO, SCREEN @@ -170,12 +174,19 @@ log4perl.appender.SCREEN.layout.ConversionPattern=%d %p> %F{1}:%L %M - %m%n _log4perl_ - warn "# $name is using debug logger\n" if ($log_debug); - } else { - warn "# $name is using null logger\n" if ($log_debug); - } - Log::Log4perl->init( \$conf ); + warn "# $name is using debug logger\n" if ($log_debug); + } elsif ($name =~ m/Test::Exception/o) { + warn "# disabled logging for Text::Exception\n" if ($log_debug); + } elsif (-e $file) { + warn "# $name is using $file logger\n" if ($log_debug); + Log::Log4perl->init($file); + return 1; + } else { + warn "# $name is using null logger\n" if ($log_debug); } + Log::Log4perl->init( \$conf ); + + return 1; } @@ -194,12 +205,29 @@ my $name = (caller(2))[3] || caller; $self->{'_logger_'} ||= $self->_init_logger; - warn "# get_logger( $name )\n" if ($log_debug); - - return get_logger($name); + my $log = get_logger( $name ); + warn "# get_logger( $name ) level ", $log->level, "\n" if ($log_debug); + return $log; } +=head2 _log + +Quick cludge to make logging object available to scripts which +use webpac line this: + + my $log = _new WebPAC::Common()->_get_logger(); + +=cut + +sub _new { + my $class = shift; + my $self = {@_}; + bless($self, $class); + + $self ? return $self : return undef; +} + =head1 LOGGING Logging in WebPAC is performed by L with config file