diff --git a/build.gradle.kts b/build.gradle.kts index 2c83253..ac7ef3b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,7 +1,7 @@ // Project settings group = "org.veupathdb.lib" -version = "7.0.6" +version = "7.0.7" plugins { `java-library` diff --git a/src/main/java/org/veupathdb/lib/container/jaxrs/server/middleware/ErrorMapper.java b/src/main/java/org/veupathdb/lib/container/jaxrs/server/middleware/ErrorMapper.java index c537a26..5db004c 100644 --- a/src/main/java/org/veupathdb/lib/container/jaxrs/server/middleware/ErrorMapper.java +++ b/src/main/java/org/veupathdb/lib/container/jaxrs/server/middleware/ErrorMapper.java @@ -14,8 +14,10 @@ import jakarta.ws.rs.ext.Provider; import org.apache.logging.log4j.Logger; import org.glassfish.grizzly.http.server.Request; +import org.veupathdb.lib.container.jaxrs.Globals; import org.veupathdb.lib.container.jaxrs.providers.LogProvider; import org.veupathdb.lib.container.jaxrs.utils.RequestKeys; +import org.veupathdb.lib.container.jaxrs.utils.logging.LoggingVars; import org.veupathdb.lib.container.jaxrs.view.error.*; import static jakarta.ws.rs.core.Response.Status.INTERNAL_SERVER_ERROR; @@ -65,7 +67,10 @@ public Response toResponse(Throwable err) { : INTERNAL_SERVER_ERROR.getStatusCode(); if (code == INTERNAL_SERVER_ERROR.getStatusCode()) { - log.error("Caught Exception: ", err); + // Log the trace-id, since it's being removed from the ThreadContext before this point. + // It's unclear why it's being removed from the context before this is invoked, but this ensures we have it. + String traceId = _request.get().getHeader(Globals.TRACE_ID_HEADER); + log.error("(trace: {}) Caught Exception: ", traceId, err); // If final response is 5XX, emit a metric. INTERNAL_ERROR_COUNT.inc(); diff --git a/src/main/java/org/veupathdb/lib/container/jaxrs/server/middleware/RequestIdFilter.java b/src/main/java/org/veupathdb/lib/container/jaxrs/server/middleware/RequestIdFilter.java index 5fe2027..1fa7879 100644 --- a/src/main/java/org/veupathdb/lib/container/jaxrs/server/middleware/RequestIdFilter.java +++ b/src/main/java/org/veupathdb/lib/container/jaxrs/server/middleware/RequestIdFilter.java @@ -85,6 +85,7 @@ public void filter(ContainerRequestContext req, ContainerResponseContext res) { } private void removeContext() { + LOG.debug("Removing logging variables from thread context."); ThreadContext.remove(Globals.CONTEXT_ID); LoggingVars.clear(); }