Je développe une application Web Java EE qui est exécutée sous JBoss.Comment collecter des logs dans jboss liés à une seule requête?
Je souhaite effectuer les opérations suivantes: Lorsqu'un utilisateur envoie une requête http (en ouvrant une page ou via AJAX), tous les journaux associés à cette demande sont collectés puis enregistrés dans la base de données. Par parenté, je veux dire qu'ils sont connectés pendant le processus de traitement de la demande en cours. La partie la plus difficile est de collecter les journaux associés à une seule requête.
que je recherchais dans cette solution:
JBoss utilise log4j pour l'enregistrement. Lorsque l'application démarre, un écouteur de début enregistre un appendeur log4j qui collecte tous les journaux dans un champ ThreadLocal. À la fin de la demande, les journaux sont extraits du champ et enregistrés dans la base de données.
Mais, il semble maintenant que les appendeurs log4j fonctionnent dans d'autres threads. Cela rend cette solution impossible.
Avez-vous une idée, comment cela a-t-il pu être fait?
Merci, Artem B.
Peut-être que je manque quelque chose, mais ne pouvait pas vous mettre quelques-uns log4j appelle dans les servlets qui sont accessibles par entrant demandes? – AndreiM
Le problème est que la demande est gérée par un certain nombre d'EJB sans état. Au cours du processus de gestion, ils enregistrent tous un tas de choses utiles - c'est ce que je veux collecter à un seul emplacement et ensuite le stocker dans la base de données. – artemb