my $logger = Log::Dispatch->new( ..., callbacks => \&package_filter, ); sub package_filter { my %message = @_; my ( $pkg, $file, $line ) = caller(3); # please check that 3 is the correct level for your situation # decide if the package $pkg should be logged if( should_log( $pkg ) ) { return $message{'message'}; } # otherwise, suppress this message return; }