Not seeing custom baggage id in the spring boot micro-service logs.
Below are the steps followed.
1. Used spring-cloud-starter-sleuth 2.2.1.release with springboot 2.2.0. Snippet from pom-
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.0.RELEASE</version>
<relativePath/>
<!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
Both properties in application.propertieswhere set as:
spring.sleuth.baggage-keys=baggage-TraceId spring.sleuth.log.slf4j.whitelisted-mdc-keys=baggage-TraceId.
logback-spring.xml is set with this baggage-TraceId.
<?xml version="1.0" encoding="UTF-8"?>
<springProperty scope="context" name="springName" source="spring.application.name" defaultValue=""/> <!-- You can override this to have a custom pattern --> <property name="CONSOLE_LOG_PATTERN" value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p [${springName},%X{traceId:-},%X{parentId:-},%X{spanId:-},%X{baggage-TraceId:-}]) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%t]){faint} %clr(%logger{20}:%line){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/> <!-- Logging configuration --> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>${CONSOLE_LOG_PATTERN}</pattern> </encoder> </appender> <root level="INFO"> <appender-ref ref="STDOUT"/> <appender-ref ref="FILE"/> </root>
in Filter, set the header value fetched from the service request.
public void doFilter(ServletRequest req, ServletResponse res, FilterChain filterChain) throws IOException, ServletException { log.info("In Filter-START"); ExtraFieldPropagation.set("baggage-TraceId","1234"); log.info("In Filter-END"+ExtraFieldPropagation.get("baggage-TraceId"));
}