2010-01-15 7 views
2

J'évalue un projet Java JSF avec une centaine d'écrans et j'aimerais pouvoir me connecter à chaque fois que quelque chose est mis dans la session HTTP avec qui appelle la méthode sur l'objet session et ce que sont les paramètres, pour faire il est plus facile pour moi de savoir ce qui se passe quand je clique sur le site.Java: Comment se connecter à n'importe quel moment quelque chose mis en session?

Je veux un journal comme:

12:00:00 h HTTPSession.setAttribute() appelé par zyxMyClass, params: zyxMySecondClass, zyxMyThirdClass)

Quelqu'un at-il une suggestion comment faire ce? Je cherche une sorte de log4j (ils utilisent la configuration de log4j) qui ferait ce genre de chose afin que je ne touche aucun code

Répondre

0

En plus de HttpSessionAttributeListener, comme indiqué par Thilo, vous pouvez utiliser log4j MDC pour garder une trace de toutes les instructions de journal suivantes dans cette session. Cela, bien sûr, ne fonctionnera que si l'écouteur est appelé par le thread de session car le contexte MDC est conservé par thread.

+0

Il n'existe pas de «thread de session» dans JSP/Servlet. – BalusC

+0

Tout ce qui est traité dans un programme, que ce soit JSP ou Servlet, est effectué par un thread. Une servlet est appelée par le conteneur lors du traitement de la requête http. Je voulais dire ce fil particulier. Autant que je sache, il pourrait s'agir du même fil de discussion pour la durée de vie d'une session, ou il pourrait s'agir d'un autre fil tiré de la réserve pour les demandes subséquentes. C'est pourquoi vous devriez être prudent avec le contexte. Mais encore, tant que la demande se propage à travers la couche, le MDC pourrait être très utile pour consigner le contexte de ce thread particulier. – Dima

Questions connexes