On 12/5/06, Bender Heri <[EMAIL PROTECTED]> wrote:

Log events which are sent to a specialized Logger (=not Root Logger) will
by default climb up the logger hierarchy until the root logger and serve
every appender of every logger found on its way. Your example: a log event
sent to logger named "loggingexample.Main" arrieves to this logger, does
not find an appender, looks up the next upper logger in hierarchy, finds the
root logger with level DEBUG and serves its appender A1.

To achieve what you want, supply the logger "loggingexample.Main" with the
appender-ref A1 and set the logger's property additivity=false. This will
prevent the log event to climb further up the hierarchy.

    <logger name="loggingexample.Main" additivity="false">
         <level value="error"/>
         <appender-ref ref="A1" />
     </logger>

Heri


This is my current xml configuration..somehow the class Main still prints
out those levels that are below error.

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/";
debug="false">

   <appender name="A1" class="org.apache.log4j.ConsoleAppender">
       <layout class="org.apache.log4j.PatternLayout">
           <!-- Print the date in ISO 8601 format -->
           <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>

       </layout>
   </appender>

   <logger name="loggingexample.Main" additivity="false">
       <level value="error"/>
       <appender-ref ref="A1"/>
   </logger>

   <root>
       <level value="debug"/>
       <appender-ref ref="A1"/>
   </root>
</log4j:configuration>

Reply via email to