[logback-user] separate task log files (slf4j + logback)
Ceki Gulcu
ceki at qos.ch
Wed Oct 18 10:28:44 CEST 2017
Hello Denis,
The SiftingAppender uses a "discriminator" to sift events. This
discriminator *can* be based on any part of the logging event and in
particular the logger name.
Here is an example of a possible LoggerBasedDiscriminator:
-------------------------------
package org.example;
public class LoggerBasedDiscriminator extends
AbstractDiscriminator<ILoggingEvent> {
private String key;
@Override
public void start() {
if (OptionHelper.isEmpty(key)) {
addError("The \"Key\" property must be set");
started = false;
} else {
started = true;
}
}
public String getDiscriminatingValue(ILoggingEvent event) {
return event.getLoggerName();
}
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
}
-------------------------------
Here is an example configuration for the sifting appender:
<appender name="SIFT"
class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator class="org.example.LoggerBasedDiscriminator ">
<key>task</key>
</discriminator>
<sift>
<appender name="FILE-${task}"
class="ch.qos.logback.core.FileAppender">
<file>${task}.log</file>
<append>false</append>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d [%thread] %level %logger{35} - %msg%n</pattern>
</layout>
</appender>
</sift>
</appender>
As far as I can tell, the above is fits your initial requirements.
However, I have not tested the above which might not even compile.
--
Ceki
On 18.10.2017 08:41, Денис Матвеев wrote:
> The MDC does not help when I have several different long-running tasks
> in one thread and I just want to immediately separate their logs. It
> seems that this is not such a fantastic wish. It is much easier to
> separate logical logging flows at once, than to filter them later in
> databases. The amount of data is large, logs per day can accumulate
> several hundred megabytes. It turns out that we will have to write our
> own implementation of such a log.
More information about the logback-user
mailing list