I've been reading the logback manual for 2 hours and still can't figure how to do what I need.
It is as simple as the title says: I want to log only the errors to a file, and the other levels (including ERROR) to console.
This is the root section of my logcat.xml file:
<root level="TRACE" >
<appender-ref ref="CONSOLE_APPENDER" />
<appender-ref ref="FILE_APPENDER" />
</root>
The problem with this configuration is that it logs every level >= TRACE to both appenders.
I could let the root with only console, and define a file logger:
<logger name='file_logger' level='ERROR' >
<appender-ref ref="FILE_APPENDER" />
</logger>
But then I'd have to call the normal logger like this:
LoggerFactory.getLogger(ClientClass.class);
And the file logger like this:
LoggerFactory.getLogger("file_logger");
I don't wan't to choose the logger for each class. I just want to get the root logger from the factory using the class as parameter, and have it do the correct thing depending on the level.
Is this possible?
Put this into your file appender definition:
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
The ThresholdFilter
is in logback-classic.jar
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With