Last active
June 17, 2024 06:00
-
-
Save xinyii/c114d1fc054afe37f81d479c92707b99 to your computer and use it in GitHub Desktop.
[Logback SiftingAppender with Marker] #logback #spring
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Will be written to `log/yyyy-MM-dd/demo.log` | |
Marker marker = MarkerFactory.getMarker("demo"); | |
log.info(marker, "hello world"); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<configuration> | |
<appender name="SIFT" class="ch.qos.logback.classic.sift.SiftingAppender"> | |
<!-- in the absence of the class attribute, it is assumed that the | |
desired discriminator type is | |
ch.qos.logback.classic.sift.MDCBasedDiscriminator --> | |
<discriminator class="com.example.discriminator.MarkerDiscriminator"> | |
</discriminator> | |
<sift> | |
<appender name="FILE-${filename}" class="ch.qos.logback.core.FileAppender"> | |
<file>log/${filename}.log</file> | |
<append>false</append> | |
<layout class="ch.qos.logback.classic.PatternLayout"> | |
<pattern>%d %marker [%thread] %level %mdc %logger{35} - %msg%n</pattern> | |
</layout> | |
</appender> | |
</sift> | |
</appender> | |
<root level="DEBUG"> | |
<appender-ref ref="SIFT" /> | |
</root> | |
</configuration> |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MarkerDiscriminator extends AbstractDiscriminator<ILoggingEvent> { | |
@Override | |
public String getDiscriminatingValue(ILoggingEvent iLoggingEvent) { | |
final Marker marker = iLoggingEvent.getMarker(); | |
return marker == null ? "spring" : (LocalDate.now().format(DateTimeFormatter.ISO_DATE) + "/" + marker); | |
} | |
@Override | |
public String getKey() { | |
return "filename"; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment