est-il possible dans SpringFramework de loger le temps pris par des méthodes [sélectif | tout] automatiquement. En automatiquement, je veux dire, je ne veux pas aller à chaque méthode et écrire le log.debug ("...."); truc. p>
5 Réponses :
Vous pouvez utiliser AspectJ pour cela, déclarez un point de journal appelé par wildcard avec pré- et manipulation de poteau avant () et après () conseil. p>
AOP est ce dont vous avez besoin ici. AOP vous permet d'ajouter du code à votre application sans modifier le code d'origine. Le ressort AOP préfère y accomplir avec proxy em> objets. proxy em> Les objets utilisent un motif de décorateur pour envelopper l'objet em> cible d'origine et ajouter du code. Le proxy em> est configuré pour implémenter une ou plusieurs interfaces de l'objet d'origine cible em>. Ici, à l'heure d'une application, l'idée est d'utiliser le La première option consiste à utiliser la classe de ressort au-dessous d'une configuration de ressort qui illustre ces étapes: p> et la configuration du niveau de journal pour le performanconitorinterceptor code>
, une des classes de surveillance des performances qui expédient avec le cadre de printemps. P> proxyfactorybean code> pour créer le ressort AOP proxy em> objets. Pour ce faire: p>
performanconitorInceptor code>: li>
RegexpMethodpointCutPutAdvisor CODE>: LI>
proxyFactorybean code> pour proxy votre haricot d'origine et appliquez votre conseiller em> li>
performanconitorInterceptor code> à trace fort> li>
ul>
performanconnorterceptor code>:
<beans "add xsd declarations here" >
<bean id="MyService" class="org.myapp.services.MyService">
<property ... />
</bean>
<bean id="timingAdvice"
class="org.springframework.aop.interceptor.PerformanceMonitorInterceptor"/>
<aop:config>
<aop:advisor pointcut="execution(* org.myapp.services.MyService.*(..))"
advice-ref="timingAdvice"/>
</aop:config>
</beans>
Je ne sais pas pourquoi mais ce ne marche pas.Aso Modifier votre code de
Il ne s'agit que de rien enregistrement, j'ai ajouté la ligne U spécifiée pour activer la trace, cette chose n'a pas été élaborée. Ensuite, j'ai supprimé mon projet Log4J existant et j'ai créé un nouveau avec tout ce que vous avez mentionné, même je ne reçois rien dans le journal. : |
Cet extrait de configuration seul ne fera rien. Vous devez déclarer un printemps AOP BeanPostProcesseur (ou s'agit-il d'un beanFactoryPostProcesseur) à proxy automatiquement les haricots avec le timingadvisor.
J'ai mis à jour ma réponse au détail Comment faire des haricots de printemps proxy avec le proxyfactorybean code>
Enfin, j'ai compris comment faire cela.
Tout d'abord, voir le message par ' Pascal thivent em>', cela m'a fait une grande aide. Après avoir changé votre log4j.properties et créez le Timing Dimingdvisor Strong> Ce que vous devez doit, contraignant ce conseiller auprès de la classe que vous souhaitez activer le débogage. Vous devez modifier votre code comme celui-ci. P> nouveau code. Fort > p>
Je vois qu'il y a déjà été une réponse acceptée ici, mais j'encouragerais tout le monde à jeter un coup d'œil à la dernière version de Spring Outilsuite (distribution d'Eclipse de SpringSource). Il est livré avec un utilitaire de profilage hors de la boîte, la perspicacité du printemps, qui fournit ces statistiques exactes au moment de l'exécution d'un format agréable. Il suffit de déployer votre application à son interne Tomcat, appuyez sur quelques pages, puis allez sur le servlet / Insight et voyez le temps pris dans chaque méthode appelée toutes les étages SQL qui ont été exécutés et combien de temps ils ont pris. P >
Voici un lien vers une belle écriture à propos de la perspicacité du printemps qui devrait vous obtenir ce que vous voulez en quelques minutes seulement. http: // www .dotkam.com / 2009/10/28 / Spring-Insight-in-Action-5-minutes-de-Scratch / P>
Vous pouvez jeter un coup d'œil à Stagemonitor . C'est un moniteur de performances d'application Web Java open source. Il capture des métriques de temps de réponse, des métriques JVM, des détails de la demande (y compris une pile d'appels capturée par le profileur de la demande) et plus encore. Les frais généraux sont très bas. P>
Eventuellement, vous pouvez utiliser le grand graphite de la base de données ELIMINAIRE pour stocker une longue antécédente de données que vous pouvez consulter avec des tableaux de bord de fantaisie. P>
Exemple Screenshot: p>
Jetez un coup d'œil au Site Web du projet pour voir plus d'écran, descriptions de fonctionnalités et de la documentation. P >
Remarque: je suis le développeur de Stagemonitor P>