2016-05-03 8 views
0

Ziel ist es, allen Log-Anweisungen pro Anfrage eine eindeutige ID zu geben (die aufgrund der Verwendung von AsynRestTemplate mehrere Threads erzeugen kann). Ich habe eine Situation, in der "ListenableFutureCallback" onFailure() eine Ausnahme neu abstimmt. Wenn die Ausnahme ausgelöst wird, wird der globale Ausnahmebehandler geschrieben, der "ResponseEntityExceptionHandler" erweitert. Ich muss Log4j2 ThreadContext von OnFailure zu ResponseEntityExceptionHandler übergeben. someErrorHandler() -Methode, so dass log4j eine eindeutige ID für diese Anfrage protokollieren kann, um zu korrelieren, was mit diesem Aufruf passiert ist.Log4j2 ThreadContext über Threads im Frühjahr übergeben

Ich kann mehr Details zur Verfügung stellen, falls erforderlich. Schätze deine Hilfe.

Antwort

0

Dies ist nur eine Vermutung, aber ich würde sehen, ob Sie die ThreadContext-Attribute als Header zur Antwort hinzufügen können. Ich würde denken, dass sie an allen Orten verfügbar sein würden, an denen Sie sie haben wollen.

+0

Yeap, ich habe das und das ist, wie ich wollte, aber ich bin ein bisschen verwirrt/nicht sicher über den Zugriff auf Header im Frühjahr (speziell OnFailure-Methode), die Methode mit Throwable als Argument hat. \t \t public void onFailure (endgültiger Throwable ex) {} und das Abrufen des Teils befindet sich im Servlet-Filer, der HttpServletRequest und HttpServletResponse als Parameter für die doFilter-Methode hat. Vermutlich vermisse ich etwas sehr Rudimentäres im Springspace. Vielen Dank. – Srinivas