[logback-user] Different Log Levels For Different Appenders?

Eric Faden eric at techeminence.com
Thu Aug 28 16:01:31 CEST 2008

That doesn't exactly solve what I am trying to do.  The problem isn't 
that I can't get the correct level on a specific logger, the problem is 
more that I want to have a specific logger go to two different appenders 
and log at different levels based on the appender.  For example I want 
to have the root logger log at level INFO to the Console.  I then want 
to have the logger for some class Blah log to the appender for root 
(Console) at the level of root (INFO), but also log to a file Foo.txt at 
level Debug.  So far as I can tell the only way to do this is to set the 
level of Blah to debug, have a file appender, and also put a filter on 
the console appender to filter out things below INFO.  Does that make 
sense what I am trying to do?  Basically I want a single logger to log 
to different levels to different appenders.


Ceki Gulcu wrote:
> Hello Eric,
> I think this is described in chapter 3 of the manual. See "Example 3.9: Logger 
> level sample (logback-examples/src/main/java/chapter3/sample4.xml)". The list 
> numbering in that chapter only works with Firefox. So on other browsers you 
> might see all examples numbered as "3.". See also the next section in the same 
> chapter, on "Configuring Appenders", in particular, the cumulative addition of 
> appenders. It might be the other "cleaner" way, you are looking for.
> HTH,
> Eric Faden wrote:
>> So suppose I set my root logger to error, but I want to have another 
>> logger operate at debug level.  When I do that it makes that loggers 
>> level debug for all appenders.  For example take the following
>> <configuration>
>>   <appender name="*FILE*"
>>      ....
>>   </appender>
>>   <appender name="*STDOUT*"
>>      ...
>>   </appender>
>>   <logger name="mylogger">
>>     <level value="debug" />
>> **    <appender-ref ref="FILE" />**
>>   </logger>
>>   <root>
>>     <level value="error" />*
>>     <appender-ref ref="STDOUT" />*
>>   </root>
>> </configuration>
>> In this example mylogger would output at debug level to BOTH STDOUT
>> and FILE.  Is it possible to only get mylogger to output at debug
>> level to FILE and error to STDOUT?  I realize that I can add a filter
>> to the STDOUT appender to filter anything below ERROR, but I was
>> curious if there was another way to do this, possibly cleaner?
>> -Eric

More information about the Logback-user mailing list