--- nfo/perl/libs/DesignPattern/Bridge.pm 2003/01/20 16:55:15 1.4 +++ nfo/perl/libs/DesignPattern/Bridge.pm 2003/01/31 01:19:50 1.5 @@ -1,7 +1,10 @@ ## -------------------------------------------------------------------------------- -## $Id: Bridge.pm,v 1.4 2003/01/20 16:55:15 joko Exp $ +## $Id: Bridge.pm,v 1.5 2003/01/31 01:19:50 root Exp $ ## -------------------------------------------------------------------------------- ## $Log: Bridge.pm,v $ +## Revision 1.5 2003/01/31 01:19:50 root +## + fixed: doesn't need Log::Dispatch any more, but uses it if available +## ## Revision 1.4 2003/01/20 16:55:15 joko ## + sub mixinPackage ## + sub include @@ -41,7 +44,7 @@ # - sub run # get logger instance -my $logger = Log::Dispatch::Config->instance; +my $logger = eval { Log::Dispatch::Config->instance; }; my $meta; @@ -51,7 +54,7 @@ my $class = ref($invocant) || $invocant; my @args = (); @_ && (@args = @_); - $logger->debug( __PACKAGE__ . "->new(@args)" ); + $logger->debug( __PACKAGE__ . "->new(@args)" ) if $logger; my $self = { @_ }; #print "class: $class", "\n"; bless $self, $class; @@ -74,7 +77,7 @@ my $method = $AUTOLOAD; $method =~ s/^.*:://; - $logger->debug( __PACKAGE__ . "->" . $method . "(@_)" . " (AUTOLOAD called, not dispatched)" ); + $logger->debug( __PACKAGE__ . "->" . $method . "(@_)" . " (AUTOLOAD called, not dispatched)" ) if $logger; ## ->DESTROY would - if not declared - trigger an AUTOLOAD also return if $method =~ m/::DESTROY$/; @@ -111,9 +114,9 @@ return 1; } - #$logger->info( __PACKAGE__ . "->load: $package" ); - #$logger->info( __PACKAGE__ . "->load: $self_modulename" ); - $logger->debug( $self_modulename . "->load: $package\t[via " . __PACKAGE__ . "]" ); + #$logger->info( __PACKAGE__ . "->load: $package" ) if $logger; + #$logger->info( __PACKAGE__ . "->load: $self_modulename" ) if $logger; + $logger->debug( $self_modulename . "->load: $package\t[via " . __PACKAGE__ . "]" ) if $logger; # this is the module testing phase - use mixin doesn't seem to propagate errors by default eval("use $package;"); @@ -122,7 +125,12 @@ # include caller information my @caller = caller; my $caller_msg = $caller[1] . ':' . $caller[2]; - $logger->error( __PACKAGE__ . "->load: $@ ($caller_msg)" ); + my $msg = __PACKAGE__ . "->load: $@ ($caller_msg)"; + if ($logger) { + $logger->error($msg); + } else { + print $msg, "\n"; + } } #print "ref-1: ", ref $self, "\n"; @@ -149,7 +157,7 @@ #eval("use mixin_all '$package';"); if ($@) { $meta->{loaded}->{$package} = 0; - $logger->error( __PACKAGE__ . "->load: $@" ); + $logger->error( __PACKAGE__ . "->load: $@" ) if $logger; } else { $meta->{loaded}->{$package} = 1; } @@ -165,7 +173,7 @@ if ($meta->{loaded}->{$package}) { $meta->{loaded}->{$package} = 0; my $where = __PACKAGE__ . ':' . __LINE__; - $logger->debug( __PACKAGE__ . "->unload: FIXME: DESTROY object is not implemented at '$where'." ); + $logger->debug( __PACKAGE__ . "->unload: FIXME: DESTROY object is not implemented at '$where'." ) if $logger; } }