after I migrated my app from spring boot 2.7 to 3.1.5, I am not able to log traceId and spanId to the logger.
I migrated sleuth to micromerter, as described in migration guide and edited the log4j2.xml file to recommended format [%X{traceId:-}, %X{spanId:-}]
but it is not logged as you can see bellow:
2023-11-01 16:38:15.854+0100 [level=INFO ][,] INFO MBP-14 --- [ctor-http-nio-3] com.example.demo.Controller : Hello, World!
vs
2023-11-01 16:38:42.896+0100 [level=INFO ][{spanId=fb964679c404b92f, traceId=fb964679c404b92f}] INFO MBP-14 --- [ctor-http-nio-2] com.example.demo.Controller : Hello, World!
2.7.7 dependencies:
extra["springCloudVersion"] = "2021.0.8"
dependencies {
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.springframework.boot:spring-boot-starter-webflux")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.springframework.cloud:spring-cloud-starter-sleuth")
implementation("org.springframework.boot:spring-boot-starter-log4j2")
testImplementation("org.springframework.boot:spring-boot-starter-test")
}
configurations {
all {
exclude(module = "logback-classic")
exclude(group = "org.springframework.boot", module = "spring-boot-starter-logging")
exclude(group = "org.slf4j", module = "slf4j-log4j12")
}
}
3.1.5 dependencies:
dependencies {
implementation("org.springframework.boot:spring-boot-starter-actuator")
implementation("org.springframework.boot:spring-boot-starter-webflux")
implementation("com.fasterxml.jackson.module:jackson-module-kotlin")
implementation("io.micrometer:micrometer-tracing-bridge-brave")
implementation("io.zipkin.reporter2:zipkin-reporter-brave")
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.springframework.boot:spring-boot-starter-log4j2")
testImplementation("org.springframework.boot:spring-boot-starter-test")
}
configurations {
all {
exclude(module = "logback-classic")
exclude(group = "org.springframework.boot", module = "spring-boot-starter-logging")
exclude(group = "org.slf4j", module = "slf4j-log4j12")
}
}
I prepared repo here with branches 2.7 and 3.1 where it can be reproduced by calling the hello endpoint.
Hooks.enableAutomaticContextPropagation()
has to be added to themain()
function and then it works