The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl
use strict;
use warnings;

use Test::More;

use Log::Dispatchouli;

{
  package Xyzzy::Logger;
  use base 'Log::Dispatchouli';

  sub env_prefix { 'XYZZY' }
}

{
  local $ENV{DISPATCHOULI_DEBUG} = 1;
  local $ENV{XYZZY_DEBUG} = 0;
  my $d_logger = Log::Dispatchouli->new_tester;
  my $x_logger = Xyzzy::Logger->new_tester;

  ok(   $d_logger->is_debug, "DISPATCHOULI_ affects L::D logger");
  ok( ! $x_logger->is_debug, "...but XYZZY_ overrides for X::L");
}

{
  local $ENV{DISPATCHOULI_DEBUG} = 1;
  my $d_logger = Log::Dispatchouli->new_tester;
  my $x_logger = Xyzzy::Logger->new_tester;

  ok(   $d_logger->is_debug, "DISPATCHOULI_ affects L::D logger");
  ok(   $x_logger->is_debug, "...and X::L will use it with no XYZZY_");
}

{
  local $ENV{XYZZY_DEBUG} = 1;
  my $d_logger = Log::Dispatchouli->new_tester;
  my $x_logger = Xyzzy::Logger->new_tester;

  ok(   $x_logger->is_debug, "XYZZY_ affects X::L");
  ok( ! $d_logger->is_debug, "...but not L::D");
}

done_testing;