Thanks
I've spent some time looking into these two methods for removing appenders but it turns out that you can only use them if you manually create the appenders (with Log::Log4perl::Appender->new) and add them (with $log->add_appender).
If you create your appenders via a configuration file (like I've shown above) then the logger object does not keep track of all the appenders by name.
I'm not sure if this is a 'feature' but it is the way it works with the version I have installed (1.05).
Here is an example with a configuration file
erickn@cofjora01d:/home/erickn> cat logtest1 use strict; use warnings; use Log::Log4perl; use Data::Dumper; my $log_conf1 = <<EOT; log4perl.rootLogger=DEBUG, Screen log4perl.appender.Screen=Log::Log4perl::Appender::Screen log4perl.appender.Screen.stderr=0 log4perl.appender.Screen.layout=Log::Log4perl::Layout::PatternLayout log4perl.appender.Screen.layout.ConversionPattern = %d %-1.1p %P %H %m +%n EOT Log::Log4perl->init(\$log_conf1); my $log = Log::Log4perl->get_logger; print Dumper $log; $log->debug('this is a test'); erickn@cofjora01d:/home/erickn> perl logtest1 $VAR1 = bless( { 'is_OFF' => sub { "DUMMY" }, 'is_DEBUG' => sub { "DUMMY" }, 'ERROR' => sub { "DUMMY" }, 'is_INFO' => sub { "DUMMY" }, 'layout' => undef, 'category' => 'main', 'DEBUG' => $VAR1->{'ERROR'}, 'is_ALL' => sub { "DUMMY" }, 'additivity' => 1, 'ALL' => sub { "DUMMY" }, 'is_FATAL' => sub { "DUMMY" }, 'is_WARN' => sub { "DUMMY" }, 'FATAL' => $VAR1->{'ERROR'}, 'appender_names' => [], 'WARN' => $VAR1->{'ERROR'}, 'INFO' => $VAR1->{'ERROR'}, 'level' => undef, 'num_appenders' => 0, 'OFF' => $VAR1->{'ERROR'}, 'is_ERROR' => sub { "DUMMY" } }, 'Log::Log4perl::Logger' ); 2006/07/17 18:05:13 D 14011 cofjora01d this is a test
As you can see the object does not keep track of the appenders but still correctly writes output.

However, if I manually create the appenders like...
erickn@cofjora01d:/home/erickn> cat logtest2 use strict; use warnings; use Log::Log4perl; use Data::Dumper; my $screen = Log::Log4perl::Appender->new( "Log::Log4perl::Appender::Screen", name => "Screen", ); my $layout = Log::Log4perl::Layout::PatternLayout->new("%d %-1.1p %P % +H %m%n"); $screen->layout($layout); my $log = Log::Log4perl->get_logger; $log->add_appender($screen); print Dumper $log; $log->debug('this is another test'); erickn@cofjora01d:/home/erickn> perl logtest2 $VAR1 = bless( { 'is_OFF' => sub { "DUMMY" }, 'is_DEBUG' => sub { "DUMMY" }, 'ERROR' => sub { "DUMMY" }, 'is_INFO' => sub { "DUMMY" }, 'layout' => undef, 'category' => 'main', 'DEBUG' => $VAR1->{'ERROR'}, 'is_ALL' => sub { "DUMMY" }, 'additivity' => 1, 'ALL' => sub { "DUMMY" }, 'is_FATAL' => sub { "DUMMY" }, 'is_WARN' => sub { "DUMMY" }, 'FATAL' => $VAR1->{'ERROR'}, 'appender_names' => [ 'Screen' ], 'WARN' => $VAR1->{'ERROR'}, 'INFO' => $VAR1->{'ERROR'}, 'level' => undef, 'num_appenders' => 1, 'OFF' => $VAR1->{'ERROR'}, 'is_ERROR' => sub { "DUMMY" } }, 'Log::Log4perl::Logger' ); 2006/07/17 18:12:41 D 14290 cofjora01d this is another test
The appender is listed in the object and is available for removal or eradication.

In reply to Re^3: How to turn off a Log4perl appender? by mifflin
in thread How to turn off a Log4perl appender? by mifflin

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.