Skip to content

Commit 222760e

Browse files
committed
GH-5208 Enable request tracing through logs using new associated request id
1 parent 6e64a12 commit 222760e

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

tools/server-spring/src/main/java/org/eclipse/rdf4j/http/server/ServerInterceptor.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,13 @@
1010
*******************************************************************************/
1111
package org.eclipse.rdf4j.http.server;
1212

13+
import java.util.UUID;
14+
import java.util.concurrent.atomic.AtomicLong;
15+
1316
import javax.servlet.http.HttpServletRequest;
1417
import javax.servlet.http.HttpServletResponse;
1518

19+
import org.slf4j.MDC;
1620
import org.springframework.web.servlet.HandlerInterceptor;
1721

1822
/**
@@ -24,13 +28,23 @@
2428
*/
2529
public abstract class ServerInterceptor implements HandlerInterceptor {
2630

31+
private static final String REQUEST_ID_KEY = "org.eclipse.rdf4j.requestId";
32+
private static final String PROCESS_ID = "process:" + UUID.randomUUID();
33+
34+
private static final AtomicLong requestNumber = new AtomicLong(0L);
35+
2736
private volatile String origThreadName;
2837

38+
private static String createRequestId() {
39+
return PROCESS_ID + ":request:" + requestNumber.getAndIncrement();
40+
}
41+
2942
@Override
3043
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
3144
throws Exception {
3245
origThreadName = Thread.currentThread().getName();
3346
Thread.currentThread().setName(getThreadName());
47+
MDC.put(REQUEST_ID_KEY, createRequestId());
3448

3549
setRequestAttributes(request);
3650

@@ -43,6 +57,7 @@ public void afterCompletion(HttpServletRequest request, HttpServletResponse resp
4357
try {
4458
cleanUpResources();
4559
} finally {
60+
MDC.remove(REQUEST_ID_KEY);
4661
Thread.currentThread().setName(origThreadName);
4762
}
4863
}

0 commit comments

Comments
 (0)