How do you define your logger in your Java code?  I'm suspicious that the logger name you've defined as "MyClass" is merely the simple name of the class, not the fully qualified name of the class that you've likely defined it for your logger name.

That is, if "MyClass" is in the package "com.mypackage", and you've defined the logger using something like...

Logger logger = Logger.getLogger(MyClass.class);
OR
Logger logger = Logger.getLogger(MyClass.class.getName());

...then your configuration should be....

<logger name="com.mypackage.MyClass">
 <level value="DEBUG" />
</logger>

Note that "additivity" is "true" by default and need only be specified if you want to set it to "false" (which would mean you wouldn't inherit appenders/levels from ancestor loggers).

Also note that "priority" is the deprecated name for "level".  It will work the same, but you should just use "level" to avoid confusion.

Finally, you mention you want all other classes to log at the ERROR level, yet you defined the level in "root" as INFO.  Typo?


Jake

On Fri, 8 Jun 2012 08:45:21 -0700 (PDT)
 aggarwal <akansha.ag...@gmail.com> wrote:

Hi,

I have tried it with the following configuration :


<appender name="Log1" class="org.apache.log4j.RollingFileAppender">
        
        
        
        
        
        <layout class="org.apache.log4j.PatternLayout">
                      
        </layout>
</appender>

<logger name="MyClass" additivity="true">
        <level value="DEBUG" />
</logger>

<root>
        <priority value="INFO" />
        <appender-ref ref="Log1" />
</root>


I want MyClass logs of DEBUG level and all other classes of ERROR in
"log1.log" file as mentioned in logger "Log1". But it isnt happening. Am not
getting any DEBUG logs in "log1.log" whereas if I set the level in appender
"Log1" to DEBUG, I do get the DEBUG logs of Myclass in log1.log. I am sorry
if am still making some mistake here. Please correct me where am I wrong.

Thanks for such quick replies.





Jacob Kjome wrote:


What I've provided does exactly what you are asking for.  Setting your
class logging level to DEBUG overrides the inherited level from root for the specified logger name.  Why don't you just try it and see what it does rather than speculate on why you believe it wouldn't work?  You can also read try reading the docs...

http://logging.apache.org/log4j/1.2/manual.html

Jake

On Thu, 7 Jun 2012 20:44:05 -0700 (PDT)
 aggarwal <akansha.ag...@gmail.com> wrote:

So when root level is ERROR and i set Myclass level to DEBUG, how will
the
Myclass's DEBUG logs get logged since the root level is ERROR and it will
block the DEBUG logs ? What i know is that, if I set root level to DEBUG
and
some particular class (say Myclass) logger level to ERROR then, all
classes'
logs of DEBUG will get logged but not of Myclass as its restricted to
ERROR.
But what I want is the vice-versa. I want ERROR level of all classes and
DEBUG of only few important classes. I am new to log4j so maybe what i am
sayin is wrong.



Jacob Kjome wrote:


If you name your loggers by class name, then sure.  This is standard
logging configuration, not some extra special workaround.

<logger name="com.mypackage.Myclass">
    <level value="debug"/>
    <!-- inherits A1 appender from root, applies only to
com.mypackage.MyClass -->
</logger>
<logger name="com.myotherpackage">
    <level value="debug"/>
    <!-- inherits A1 appender from root, applies to all classes in "com.myotherpackage" -->
</logger>
<root>
    <level value="error"/>
    <appender-ref ref="A1"/>
</root>


Jake

On Thu, 7 Jun 2012 01:51:07 -0700 (PDT)
 aggarwal <akansha.ag...@gmail.com> wrote:

Hi,

Is it possible to set logging level for few selected classes in
appender
to
DEBUG and rest all ERROR ? Is there any combination of filter that can
do
this ?
--
View this message in context: http://old.nabble.com/class-specific-logging-level-tp33974515p33974515.html
Sent from the Log4j - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org




--
View this message in context: http://old.nabble.com/class-specific-logging-level-tp33974515p33979415.html
Sent from the Log4j - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org




--
View this message in context: http://old.nabble.com/class-specific-logging-level-tp33974515p33982398.html
Sent from the Log4j - Users mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org




---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-user-unsubscr...@logging.apache.org
For additional commands, e-mail: log4j-user-h...@logging.apache.org

Reply via email to