I just did a test with 1.2.8 and got different results.  Please retest.

In sps.wfds.biz.glacier.JDocOptions:
           logger.info("logger.isDebugEnabled()=" + logger.isDebugEnabled());

 <!-- No loggers under sps.wfds defined so the following applies -->
 <logger name="sps">
   <level value="debug"/>
   <appender-ref ref="OutputApp"/>
 </logger>

INFO 27:56.449 sps.wfds.biz.glacier.JDocOptions   logger.isDebugEnabled()=false


On 3/16/07, James Stauffer <[EMAIL PROTECTED]> wrote:
The results you claim are surprising.  I don't expect it to check for
the existence of a logger but I do expect the fact that the effective
level is info would cause isDebugEnabled() to return false.

On 3/15/07, John Eisenman <[EMAIL PROTECTED]> wrote:
> I'm using version 1.2.14
>
> My expectation in using log4j was that a call to logger.isXXXEnabled()
> would return true only in the case that a call to logger.XXX("some
> message") would result in the message being written to some appender.
> However, it appears that the existence of an appender has no bearing the
> Enabled call.
>
> For example, I have this simple configuration:
>
> <?xml version="1.0" encoding="UTF-8" ?>
> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
>
> <log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'>
>
>   <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
>     <param name="Threshold" value="debug"/>
>     <layout class="org.apache.log4j.PatternLayout">
>       <param name="ConversionPattern" value="%-4r [%t] %-5p %c %x - %m%n"/>
>     </layout>
>   </appender>
>
>   <root>
>     <level value ="info"/>
>     <appender-ref ref="STDOUT"/>
>   </root>
> </log4j:configuration>
>
>
> Using this configuration, and this program (based on log4j's examples):
>
>
> package chapter3;
>
> import org.apache.log4j.Logger;
> import org.apache.log4j.xml.DOMConfigurator;
>
> public class BugApp3 {
>     //final static Logger logger = Logger.getLogger(BugApp3.class);
>     final static Logger logger = Logger.getLogger("chapter3.BugApp3");
>
>   public static void main(String[] args) {
>     DOMConfigurator.configure(args[0]);
>
>     logger.info("Entering application.");
>
>     //debug is not enabled
>     logger.debug("Debug is enabled.");
>
>     if (logger.isDebugEnabled()) {
>         logger.info("isDebugEnabled() returns true!");
>     }
>
>     logger.info("Exiting application.");
>   }
> }
>
> I see the following output:
>
> % java chapter3.BugApp3 bug0.xml
> 0    [main] INFO  chapter3.BugApp3  - Entering application.
> 2    [main] INFO  chapter3.BugApp3  - isDebugEnabled() returns true!
> 3    [main] INFO  chapter3.BugApp3  - Exiting application.
>
> However, if I set the root level to "debug" instead, then I get this
> output instead:
>
> % java chapter3.BugApp3 bug0.xml
> 1    [main] INFO  chapter3.BugApp3  - Entering application.
> 3    [main] INFO  chapter3.BugApp3  - Exiting application.
>
> Since the goal of an isXXXEnabled() statement is to avoid doing
> unnecessary work in the case where it will not result in actual debug
> output, it seems unfortunate that it does not take into account the
> existence of an appender.
>
> Is this behavior intentional?
>
> -John
>
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


--
James Stauffer        http://www.geocities.com/stauffer_james/
Are you good? Take the test at http://www.livingwaters.com/good/



--
James Stauffer        http://www.geocities.com/stauffer_james/
Are you good? Take the test at http://www.livingwaters.com/good/

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to