I have a Spring boot application and I'm using logback as the framework for logging. Currently I want to display thread id instead of the thread name. I know it is possible using log4j2 if you use %tid .
Can I achieve the same using logback or should I implement a Custom Thread ID extractor?
I'm extending PatternLayout class and creating a map which has the thread id and it's value. How do I use this key in my logback.xml
This can be done with a custom ClassicConverter, such as:
import ch.qos.logback.classic.pattern.ClassicConverter;
import ch.qos.logback.classic.spi.ILoggingEvent;
public class ThreadIdConverter extends ClassicConverter {
@Override
public String convert(final ILoggingEvent e) {
return String.valueOf(Thread.currentThread().getId());
}
}
Then, in your logback.xml:
<configuration>
<conversionRule conversionWord="threadId" converterClass="ThreadIdConverter"/>
...
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%threadId %msg%n</pattern>
</encoder>
</appender>
...
</configuration>
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