<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MilamberSpace &#187; Apache</title>
	<atom:link href="http://blog.milamberspace.net/index.php/tag/apache/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.milamberspace.net</link>
	<description>JMeter (surtout) mais aussi l&#039;Informatique, Internet, etc.</description>
	<lastBuildDate>Wed, 14 Jul 2010 06:34:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>JMeter : Assertion sur un fichier Word ou Excel ou Powerpoint</title>
		<link>http://blog.milamberspace.net/index.php/2010/03/28/jmeter-assertion-sur-un-fichier-word-ou-excel-ou-powerpoint-634.html</link>
		<comments>http://blog.milamberspace.net/index.php/2010/03/28/jmeter-assertion-sur-un-fichier-word-ou-excel-ou-powerpoint-634.html#comments</comments>
		<pubDate>Sun, 28 Mar 2010 08:44:39 +0000</pubDate>
		<dc:creator>Milamber</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[JMeter]]></category>
		<category><![CDATA[Assertion]]></category>

		<guid isPermaLink="false">http://blog.milamberspace.net/?p=634</guid>
		<description><![CDATA[Dans la continuité du billet précédent, si vous avez besoin de faire une assertion sur un fichier Word, Excel ou Powerpoint, voici la méthode toute simple avec l&#8217;API Apache POI.
]]></description>
			<content:encoded><![CDATA[<p>Dans la continuité du billet précédent, si vous avez besoin de faire une assertion sur un fichier Word, Excel ou Powerpoint, voici <a href="http://theworkaholic.blogspot.com/2010/03/asserting-ms-office-formats.html">la méthode toute simple</a> avec l&#8217;API Apache POI.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.milamberspace.net/index.php/2010/03/28/jmeter-assertion-sur-un-fichier-word-ou-excel-ou-powerpoint-634.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nouvelle version d&#8217;Apache JMeter : v2.3.4</title>
		<link>http://blog.milamberspace.net/index.php/2009/06/21/nouvelle-version-dapache-jmeter-v2-3-4-333.html</link>
		<comments>http://blog.milamberspace.net/index.php/2009/06/21/nouvelle-version-dapache-jmeter-v2-3-4-333.html#comments</comments>
		<pubDate>Sun, 21 Jun 2009 18:44:14 +0000</pubDate>
		<dc:creator>Milamber</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[JMeter]]></category>
		<category><![CDATA[2.3.4]]></category>
		<category><![CDATA[Version]]></category>

		<guid isPermaLink="false">http://blog.milamberspace.net/?p=333</guid>
		<description><![CDATA[Aujourd&#8217;hui c&#8217;est l&#8217;été, et cela sera également la sortie de la version 2.3.4 d&#8217;Apache JMeter. Il s&#8217;agit principalement d&#8217;une version venant corriger des anomalies apparues dans la version 2.3.3, sortie depuis à peine un mois.
Les nouveautés restent donc les mêmes que la version précédente, vous pouvez en avoir un aperçu via ce billet.
Il est recommandé [...]]]></description>
			<content:encoded><![CDATA[<p>Aujourd&#8217;hui c&#8217;est l&#8217;été, et cela sera également la sortie de la version 2.3.4 d&#8217;<a href="http://jakarta.apache.org/jmeter/">Apache JMeter</a>. Il s&#8217;agit principalement d&#8217;une version venant <a href="http://jakarta.apache.org/jmeter/changes.html">corriger des anomalies</a> apparues dans la version 2.3.3, sortie depuis à peine un mois.</p>
<p>Les nouveautés restent donc les mêmes que la version précédente, vous pouvez en avoir un aperçu via ce <a href="http://blog.milamberspace.net/index.php/2009/05/24/nouvelle-version-dapache-jmeter-233-293.html">billet</a>.</p>
<p>Il est recommandé de basculer en version 2.3.4, spécialement pour ceux qui utilisent la version 2.3.3.</p>
<p>Bonne utilisation de JMeter !</p>
<p>./</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.milamberspace.net/index.php/2009/06/21/nouvelle-version-dapache-jmeter-v2-3-4-333.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Envie d&#8217;écrire : quelques nouvelles</title>
		<link>http://blog.milamberspace.net/index.php/2009/06/13/envie-decrire-quelques-nouvelles-326.html</link>
		<comments>http://blog.milamberspace.net/index.php/2009/06/13/envie-decrire-quelques-nouvelles-326.html#comments</comments>
		<pubDate>Sat, 13 Jun 2009 10:05:22 +0000</pubDate>
		<dc:creator>Milamber</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[Tomcat]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[OpenOffice]]></category>
		<category><![CDATA[SSTIC]]></category>

		<guid isPermaLink="false">http://blog.milamberspace.net/?p=326</guid>
		<description><![CDATA[Je me rends compte que j&#8217;écris depuis plusieurs billets quasiment que sur JMeter, principalement car j&#8217;aime bien JMeter (qui ne l&#8217;a pas compris ?) et aussi car je n&#8217;ai pas malheureusement un temps infini pour le blog.
Voilà, en ce weekend très chaud ici grâce au chergui, je suis en short et tongue, et il se [...]]]></description>
			<content:encoded><![CDATA[<p>Je me rends compte que j&#8217;écris depuis plusieurs billets quasiment que sur JMeter, principalement car j&#8217;aime bien JMeter (qui ne l&#8217;a pas compris ?) et aussi car je n&#8217;ai pas malheureusement un temps infini pour le blog.</p>
<p>Voilà, en ce weekend très chaud ici grâce au <a href="http://fr.wikipedia.org/wiki/Chergui_%28vent%29">chergui</a>, je suis en short et tongue, et il se trouve j&#8217;ai envie d&#8217;écrire (bizarre ?) plusieurs petites choses, histoire de vous montrer qu&#8217;il n&#8217;y a pas que JMeter dans la vie <img src='http://blog.milamberspace.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> <span id="more-326"></span></p>
<p><a href="http://www.sstic.org/SSTIC09/info.do">SSTIC</a> : c&#8217;est LE symposium de la sécurité informatique en France, il a eu lieu au début de ce mois à Rennes. Non je n&#8217;y suis pas allé <img src='http://blog.milamberspace.net/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />  mais grâce Internet et les blogs en particulier, on peut le suivre (vivre) à distance et en différé. <a href="http://bruno.kerouanton.net/blog/2009/06/08/sstic-2009-compte-rendu-des-rumps/">Sur ce lien</a>, vous trouverez des références vers d&#8217;autres blogs qui le raconte. Toujours dans ce blog, l&#8217;auteur (Bruno Kerouanton) nous détaille <a href="http://bruno.kerouanton.net/blog/2009/06/09/la-psychologie-cognitive-et-sociale-appliquee/">la ramp-up qu&#8217;il a animé</a> durant quelques minutes au SSTIC. Je partage son point de vue et la méthode : 1/ Stratégie, 2/ Tactique, 3/ et 4/ Choisir et Etudier/connaître sa cible)</p>
<p><a href="http://www.eu.apachecon.com/c/aceu2009/">ApacheCon Europe 2009</a>, c&#8217;est un peu ancien (25-27 mars 2009), mais là aussi c&#8217;est une conférence intéressante, notamment sur les aspects Performances Tomcat et Apache. Et non, je n&#8217;y suis toujours pas allé, j&#8217;ai suivi à distance les conférences, mais de manière &#8216;réelle&#8217; grâce à la possibilité de voir en ligne une très grosse partie des <a href="http://streaming.linux-magazin.de/en/archive_apachecon09.htm">présentations en live streaming</a> (et aussi ensuite en tant qu&#8217;archives), le tout moyennant finances tout de même.</p>
<p>Clairement, Tomcat n&#8217;a pas à rougir devant les mastodontes des serveurs d&#8217;applications Java/J2EE. Oui c&#8217;est juste un conteneur Web (mais vous en connaissez beaucoup des projets avec des EJB ?). Oui, il n&#8217;y a pas une superbe interface d&#8217;administration, mais bon, normalement les environnements d&#8217;exécution une fois installés ne doivent plus être administrés chaque jour ? Enfin, avec des applications correctement conçues et développées&#8230;</p>
<p><a href="http://www.openoffice.org/">OpenOffice 3</a> : Mon passage à <a href="http://www.ubuntu.com/products/whatisubuntu/904features/">Ubuntu 9.04</a> a vu l&#8217;arrivée de OpenOffice 3 en remplaçant de la version 2.4. Malheureusement, il semblerait que l&#8217;enregistrement au format DOC (Word) ne se passe pas toujours bien au niveau des pieds-de-pages. C&#8217;est frustrant, car avec la 2.4 je n&#8217;avais pas de problèmes&#8230; Du coup, je suis passé à la 3.1 <a href="http://news.softpedia.com/news/How-to-Install-OpenOffice-org-3-1-on-Ubuntu-9-04-111105.shtml">(en manuel)</a>, mais le problème semble toujours là&#8230; Va falloir que je parcours la liste des bugs pour voir si je ne suis pas le seul <img src='http://blog.milamberspace.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Sinon, un retour en Ubuntu 8.10 ?</p>
<p>Informaticiens au Parlement Européen : <a href="http://blog.mondediplo.net/2009-06-12-Emergence-du-pouvoir-pirate">Billet intéressant</a> qui nous indique que le parti politique Parti Pirate de Suède a gagné deux places de députés au parlement européen. Je ne vous raconte pas cela pour des questions de politiques, etc. mais plutôt comme un exemple de la &#8216;révolution Internet&#8217;, qui est toujours en cours. Sans être sociologue ou carrément anthropologue, c&#8217;est tout de même intéressant de voir les changements apportés par Internet (au sens large) tant passés, que présents et futurs.</p>
<p>Voili Voilà.</p>
<p>./</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.milamberspace.net/index.php/2009/06/13/envie-decrire-quelques-nouvelles-326.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Présentation de JMeter</title>
		<link>http://blog.milamberspace.net/index.php/2008/07/20/presentation-de-jmeter-82.html</link>
		<comments>http://blog.milamberspace.net/index.php/2008/07/20/presentation-de-jmeter-82.html#comments</comments>
		<pubDate>Sun, 20 Jul 2008 16:35:38 +0000</pubDate>
		<dc:creator>Milamber</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[JMeter]]></category>
		<category><![CDATA[Présentation]]></category>

		<guid isPermaLink="false">http://blog.milamberspace.net/?p=82</guid>
		<description><![CDATA[Sur ce blog, j&#8217;ai fait de nombreuses pages sur JMeter, mais je n&#8217;avais pas pris le temps de vous présenter cet outil en lui-même.
C&#8217;est chose fait avec cette page de présentation, qui j&#8217;espère vous permettra de mieux comprendre le comment du pourquoi de JMeter.
./
]]></description>
			<content:encoded><![CDATA[<p>Sur ce blog, j&#8217;ai fait de nombreuses pages sur JMeter, mais je n&#8217;avais pas pris le temps de vous présenter cet outil en lui-même.</p>
<p>C&#8217;est chose fait avec <a title="Présentation de JMeter" href="http://blog.milamberspace.net/index.php/presentation-de-apache-jmeter" target="_self">cette page de présentation</a>, qui j&#8217;espère vous permettra de mieux comprendre le comment du pourquoi de JMeter.</p>
<p>./</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.milamberspace.net/index.php/2008/07/20/presentation-de-jmeter-82.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Utilisation de NDC de Apache Log4J pour tracer et suivre l&#8217;exécution d&#8217;une application Java</title>
		<link>http://blog.milamberspace.net/index.php/2008/01/15/utilisation-de-ndc-de-apache-log4j-pour-tracer-et-suivre-lexecution-dune-application-java-58.html</link>
		<comments>http://blog.milamberspace.net/index.php/2008/01/15/utilisation-de-ndc-de-apache-log4j-pour-tracer-et-suivre-lexecution-dune-application-java-58.html#comments</comments>
		<pubDate>Tue, 15 Jan 2008 20:46:38 +0000</pubDate>
		<dc:creator>Milamber</dc:creator>
				<category><![CDATA[Apache]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Log4J]]></category>
		<category><![CDATA[Supervision]]></category>
		<category><![CDATA[NDC]]></category>

		<guid isPermaLink="false">http://blog.milamberspace.net/index.php/2008/01/15/utilisation-de-ndc-de-apache-log4j-pour-tracer-et-suivre-lexecution-dune-application-java-58.html</guid>
		<description><![CDATA[Un fonctionnalité pratique du framework de logging Apache Log4J est le NDC (pour  Nested Diagnostic Contexts). Ce dernier permet de tracer et suivre plusieurs instances d&#8217;un même traitement dans un seul fichier de log. Une utilisation typique est le fichier de log d&#8217;une application web s&#8217;exécutant sur un serveur d&#8217;applications, car plusieurs instances d&#8217;une [...]]]></description>
			<content:encoded><![CDATA[<p>Un fonctionnalité pratique du framework de logging Apache Log4J est le NDC (<em>pour  Nested Diagnostic Contexts</em>). Ce dernier permet de tracer et suivre plusieurs instances d&#8217;un même traitement dans un seul fichier de log. Une utilisation typique est le fichier de log d&#8217;une application web s&#8217;exécutant sur un serveur d&#8217;applications, car plusieurs instances d&#8217;une même servlet (et de plusieurs servlets) s&#8217;exécutent en même temps pour servir les utilisateurs.</p>
<p>La fonctionnalité permet donc de mieux comprendre le déroulement d&#8217;un traitement, en particulier lors qu&#8217;un problème survient lors d&#8217;un tir de charges ou sur un environnement en production. Et imaginons que ce problème &#8216;ne se reproduit pas&#8217; en environnement de recette / développement, et donc l&#8217;origine pourrait être ces accès multiples en même temps&#8230;<span id="more-58"></span></p>
<p>Un développeur seul sur sa machine génère que un seul log séquentiel, mais avec de multiples utilisateurs, le log devient un enchevêtrement de plusieurs traitements séquentiels.</p>
<p><u>Voici un exemple de log applicatif pendant un tir de charges :</u></p>
<pre>[2008-01-15 20:31:50,750][DEBUG] (DaoBoxers.java:24) - bdSelectAll() - SQL =&gt; SELECT ID, PRENOM, NOM FROM BOXERS
[2008-01-15 20:31:50,755][DEBUG] (DaoBoxers.java:27) - bdSelectAll() - ResultSet ok =&gt; org.apache.tomcat.dbcp.dbcp.DelegatingResultSet@1ba287e
[2008-01-15 20:31:50,757][DEBUG] (DaoBoxers.java:36) - bdSelectAll() - Retour list
[2008-01-15 20:31:50,758][DEBUG] (JndiJdbcTableView.java:62) - doGet() - Mise en attribut resultat
[2008-01-15 20:31:50,758][DEBUG] (JndiJdbcTableView.java:64) - doGet() - Renvoi vers JSP
[2008-01-15 20:31:50,759][DEBUG] (JndiJdbcTableView.java:78) - doGet() - end
[2008-01-15 20:31:50,768][DEBUG] (JndiJdbcWithValidationTableView.java:48) - doGet() - start
[2008-01-15 20:31:50,769][INFO ] (JndiJdbcWithValidationTableView.java:56) - doGet() - Ok connexion
[2008-01-15 20:31:50,769][DEBUG] (JndiJdbcWithValidationTableView.java:60) - doGet() - Appel Boxers =&gt; bdSelectAll
[2008-01-15 20:31:50,770][DEBUG] (DaoBoxers.java:24) - bdSelectAll() - SQL =&gt; SELECT ID, PRENOM, NOM FROM BOXERS
[2008-01-15 20:31:50,775][DEBUG] (DaoBoxers.java:27) - bdSelectAll() - ResultSet ok =&gt; org.apache.tomcat.dbcp.dbcp.DelegatingResultSet@1d2f8be
[2008-01-15 20:31:50,776][INFO ] (DirectJdbcTableView.java:60) - doGet() - Ok connexion
[2008-01-15 20:31:50,777][DEBUG] (DirectJdbcTableView.java:64) - doGet() - Appel Boxers =&gt; bdSelectAll
[2008-01-15 20:31:50,777][DEBUG] (DaoBoxers.java:24) - bdSelectAll() - SQL =&gt; SELECT ID, PRENOM, NOM FROM BOXERS
[2008-01-15 20:31:50,775][INFO ] (DirectJdbcTableView.java:60) - doGet() - Ok connexion
[2008-01-15 20:31:50,778][DEBUG] (DirectJdbcTableView.java:64) - doGet() - Appel Boxers =&gt; bdSelectAll
[2008-01-15 20:31:50,778][DEBUG] (DaoBoxers.java:24) - bdSelectAll() - SQL =&gt; SELECT ID, PRENOM, NOM FROM BOXERS
[2008-01-15 20:31:50,780][DEBUG] (DaoBoxers.java:36) - bdSelectAll() - Retour list
[2008-01-15 20:31:50,780][DEBUG] (JndiJdbcWithValidationTableView.java:62) - doGet() - Mise en attribut resultat
[2008-01-15 20:31:50,780][DEBUG] (JndiJdbcWithValidationTableView.java:64) - doGet() - Renvoi vers JSP
[2008-01-15 20:31:50,783][DEBUG] (JndiJdbcWithValidationTableView.java:78) - doGet() - end
[2008-01-15 20:31:50,784][DEBUG] (DaoBoxers.java:27) - bdSelectAll() - ResultSet ok =&gt; com.mysql.jdbc.ResultSet@10de02d
[2008-01-15 20:31:50,786][DEBUG] (DaoBoxers.java:36) - bdSelectAll() - Retour list
[2008-01-15 20:31:50,786][DEBUG] (DirectJdbcTableView.java:66) - doGet() - Mise en attribut resultat
[2008-01-15 20:31:50,787][DEBUG] (DirectJdbcTableView.java:68) - doGet() - Renvoi vers JSP
[2008-01-15 20:31:50,788][DEBUG] (DirectJdbcTableView.java:85) - doGet() - end
[2008-01-15 20:31:50,789][DEBUG] (DaoBoxers.java:27) - bdSelectAll() - ResultSet ok =&gt; com.mysql.jdbc.ResultSet@172c403
[2008-01-15 20:31:50,786][INFO ] (DirectJdbcTableView.java:60) - doGet() - Ok connexion
[2008-01-15 20:31:50,791][DEBUG] (DirectJdbcTableView.java:64) - doGet() - Appel Boxers =&gt; bdSelectAll
[2008-01-15 20:31:50,791][DEBUG] (DaoBoxers.java:24) - bdSelectAll() - SQL =&gt; SELECT ID, PRENOM, NOM FROM BOXERS
[2008-01-15 20:31:50,792][DEBUG] (JndiJdbcWithValidationTableView.java:48) - doGet() - start
[2008-01-15 20:31:50,792][INFO ] (JndiJdbcWithValidationTableView.java:56) - doGet() - Ok connexion
[2008-01-15 20:31:50,793][DEBUG] (JndiJdbcWithValidationTableView.java:60) - doGet() - Appel Boxers =&gt; bdSelectAll
[2008-01-15 20:31:50,793][DEBUG] (DaoBoxers.java:24) - bdSelectAll() - SQL =&gt; SELECT ID, PRENOM, NOM FROM BOXERS
[2008-01-15 20:31:50,794][DEBUG] (DaoBoxers.java:36) - bdSelectAll() - Retour list
[2008-01-15 20:31:50,794][DEBUG] (DirectJdbcTableView.java:66) - doGet() - Mise en attribut resultat
[2008-01-15 20:31:50,795][DEBUG] (DirectJdbcTableView.java:68) - doGet() - Renvoi vers JSP
[2008-01-15 20:31:50,796][DEBUG] (DirectJdbcTableView.java:85) - doGet() - end
[2008-01-15 20:31:50,798][DEBUG] (DaoBoxers.java:27) - bdSelectAll() - ResultSet ok =&gt; org.apache.tomcat.dbcp.dbcp.DelegatingResultSet@695586
[2008-01-15 20:31:50,799][DEBUG] (DaoBoxers.java:36) - bdSelectAll() - Retour list</pre>
<p>La fonctionnalité NDC ajoute la possibilité d&#8217;avoir un « identifiant » de traitement, par exemple le nombre de secondes depuis le 1er janvier 1970. Ainsi le log devient un enchevêtrement de traitements séquentiels identifiés.<br />
<u> Et voici un exemple de log applicatif avec NDC :</u></p>
<pre>[2008-01-15 20:07:55,920][DEBUG] (DaoBoxers.java:27) - bdSelectAll(<font color="#339966">1200427675911</font>) - ResultSet ok =&gt; org.apache.tomcat.dbcp.dbcp.DelegatingResultSet@19e907
[2008-01-15 20:07:55,921][DEBUG] (DaoBoxers.java:36) - bdSelectAll(<font color="#339966">1200427675911</font>) - Retour list
[2008-01-15 20:07:55,922][DEBUG] (JndiJdbcWithValidationTableView.java:62) - doGet(<font color="#339966">1200427675911</font>) - Mise en attribut resultat
[2008-01-15 20:07:55,922][DEBUG] (JndiJdbcWithValidationTableView.java:64) - doGet(<font color="#339966">1200427675911</font>) - Renvoi vers JSP
[2008-01-15 20:07:55,924][DEBUG] (DaoBoxers.java:27) - bdSelectAll(<font color="#ff6600">1200427675917</font>) - ResultSet ok =&gt; org.apache.tomcat.dbcp.dbcp.DelegatingResultSet@93a96c
[2008-01-15 20:07:55,925][DEBUG] (DaoBoxers.java:36) - bdSelectAll(<font color="#ff6600">1200427675917</font>) - Retour list
[2008-01-15 20:07:55,926][DEBUG] (JndiJdbcWithValidationTableView.java:62) - doGet(<font color="#ff6600">1200427675917</font>) - Mise en attribut resultat
[2008-01-15 20:07:55,926][DEBUG] (JndiJdbcWithValidationTableView.java:64) - doGet(<font color="#ff6600">1200427675917</font>) - Renvoi vers JSP
[2008-01-15 20:07:55,927][DEBUG] (JndiJdbcWithValidationTableView.java:78) - doGet(<font color="#339966">1200427675911</font>) - end
[2008-01-15 20:07:55,929][DEBUG] (DirectJdbcTableView.java:49) - doGet(<font color="#0000ff">1200427675929</font>) - start
[2008-01-15 20:07:55,931][DEBUG] (JndiJdbcWithValidationTableView.java:78) - doGet(<font color="#ff6600">1200427675917</font>) - end
[2008-01-15 20:07:55,934][DEBUG] (DirectJdbcInInitTableView.java:49) - doGet(<font color="#ff00ff">1200427675934</font>) - start
[2008-01-15 20:07:55,938][DEBUG] (JndiJdbcWithValidationTableView.java:48) - doGet(<font color="#ff0000">1200427675938</font>) - start
[2008-01-15 20:07:55,938][INFO ] (JndiJdbcWithValidationTableView.java:56) - doGet(<font color="#ff0000">1200427675938</font>) - Ok connexion
[2008-01-15 20:07:55,939][DEBUG] (JndiJdbcWithValidationTableView.java:60) - doGet(<font color="#ff0000">1200427675938</font>) - Appel Boxers =&gt; bdSelectAll
[2008-01-15 20:07:55,941][DEBUG] (net.milamberspace.dao.DaoBoxers.java:24) - bdSelectAll(<font color="#ff0000">1200427675938</font>) - SQL =&gt; SELECT ID, PRENOM, NOM FROM BOXERS
[2008-01-15 20:07:55,941][INFO ] (DirectJdbcTableView.java:60) - doGet(<font color="#0000ff">1200427675929</font>) - Ok connexion
[2008-01-15 20:07:55,942][DEBUG] (DirectJdbcTableView.java:64) - doGet(<font color="#0000ff">1200427675929</font>) - Appel Boxers =&gt; bdSelectAll
[2008-01-15 20:07:55,942][DEBUG] (DaoBoxers.java:24) - bdSelectAll(<font color="#0000ff">1200427675929</font>) - SQL =&gt; SELECT ID, PRENOM, NOM FROM BOXERS
[2008-01-15 20:07:55,947][DEBUG] (DaoBoxers.java:27) - bdSelectAll(<font color="#ff0000">1200427675938</font>) - ResultSet ok =&gt; org.apache.tomcat.dbcp.dbcp.DelegatingResultSet@17dde01
[2008-01-15 20:07:55,948][DEBUG] (DaoBoxers.java:36) - bdSelectAll(<font color="#ff0000">1200427675938</font>) - Retour list
[2008-01-15 20:07:55,949][DEBUG] (JndiJdbcWithValidationTableView.java:62) - doGet(<font color="#ff0000">1200427675938</font>) - Mise en attribut resultat
[2008-01-15 20:07:55,949][DEBUG] (JndiJdbcWithValidationTableView.java:64) - doGet(<font color="#ff0000">1200427675938</font>) - Renvoi vers JSP
[2008-01-15 20:07:55,950][DEBUG] (DaoBoxers.java:27) - bdSelectAll(<font color="#0000ff">1200427675929</font>) - ResultSet ok =&gt; com.mysql.jdbc.ResultSet@7a3c6c
[2008-01-15 20:07:55,952][DEBUG] (DaoBoxers.java:36) - bdSelectAll(<font color="#0000ff">1200427675929</font>) - Retour list
[2008-01-15 20:07:55,952][DEBUG] (DirectJdbcTableView.java:66) - doGet(<font color="#0000ff">1200427675929</font>) - Mise en attribut resultat
[2008-01-15 20:07:55,952][DEBUG] (DirectJdbcTableView.java:68) - doGet(<font color="#0000ff">1200427675929</font>) - Renvoi vers JSP
[2008-01-15 20:07:55,954][DEBUG] (DirectJdbcTableView.java:85) - doGet(<font color="#0000ff">1200427675929</font>) - end
[2008-01-15 20:07:55,956][INFO ] (DirectJdbcInInitTableView.java:57) - doGet(<font color="#ff00ff">1200427675934</font>) - Ok connexion
[2008-01-15 20:07:55,956][DEBUG] (DirectJdbcInInitTableView.java:61) - doGet(<font color="#ff00ff">1200427675934</font>) - Appel Boxers =&gt; bdSelectAll
[2008-01-15 20:07:55,957][DEBUG] (DaoBoxers.java:24) - bdSelectAll(<font color="#ff00ff">1200427675934</font>) - SQL =&gt; SELECT ID, PRENOM, NOM FROM BOXERS
[2008-01-15 20:07:55,958][DEBUG] (JndiJdbcWithValidationTableView.java:78) - doGet(<font color="#ff0000">1200427675938</font>) - end
[2008-01-15 20:07:55,961][DEBUG] (DaoBoxers.java:27) - bdSelectAll(<font color="#ff00ff">1200427675934</font>) - ResultSet ok =&gt; com.mysql.jdbc.ResultSet@283198
[2008-01-15 20:07:55,963][DEBUG] (DaoBoxers.java:36) - bdSelectAll(<font color="#ff00ff">1200427675934</font>) - Retour list</pre>
<p>Cela permet une lecture plus facile des logs (la couleur n&#8217;est pas incluse <img src='http://blog.milamberspace.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ), dès lors que l&#8217;on sait utiliser la commande grep sous Unix en faisant quelques petits grep sur l&#8217;identifiant. (par exemple : grep 1200426850018 mon_log.txt)</p>
<p>Comme faire pour utiliser NDC ? Et bien tout d&#8217;abord dans le fichier de configuration de Log4J, le fameux log4j.properties. Il faut ajouter la balise « %x » dans le ConversionPattern, celle-ci sera remplacée par l&#8217;identifiant unique défini lors de l&#8217;utilisation de NDC.</p>
<p><u>Exemple de fichier log4j.properties</u></p>
<pre><font color="#800000">log4j.rootLogger=DEBUG, LOG1
log4j.appender.LOG1=org.apache.log4j.ConsoleAppender
log4j.appender.LOG1.layout=org.apache.log4j.PatternLayout
log4j.appender.LOG1.layout.ConversionPattern=[%d][%-5p] (%C.java:%L) - %M(<strong>%x</strong>) - %m%n</font></pre>
<p>Au niveau du code source Java, on utilisera deux méthodes de la classe statique NDC.</p>
<ul>
<li><em>NDC.push(String ID)</em> qui permet de poser un identifiant</li>
<li><em>NDC.pop()</em> qui permet de dépiler le dernier identifiant posé</li>
</ul>
<p>Voici un exemple simple d&#8217;utilisation pour une servlet, avec ici, l&#8217;utilisation de « new Date().getTime() » comme identifiant :</p>
<pre>protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 NDC.push(String.valueOf(new Date().getTime()));
 logger.debug("start");
 Connection connection = null;
 try {
 	connection = getDataSource().getConnection();
 	logger.info("Ok connexion");
	DaoBoxers dao = new DaoBoxers();
 	dao.setConnection(connection);
 	ArrayList<boxer> list = dao.bdSelectAll();
 	request.setAttribute("beanListeBoxer", list);
 	this.getServletContext().getRequestDispatcher("/tableview.jsp").forward(request, response);
</boxer> } catch (Exception e) {
 	logger.error(e);
 	throw new ServletException(e.getMessage());
 } finally {
 	try {
 		connection.close();
 	} catch (SQLException sqle) {
 		logger.error(sqle);
 	}
 	logger.debug("end");
 	NDC.pop();
 }
}</pre>
<p>Bien entendu, les appels à logger.xxxx() dans les méthodes du DAO vont également bénéficier de l&#8217;identifiant NDC.</p>
<p>Espérons que ce billet vous sera utile.</p>
<p><em>La page de<a href="http://logging.apache.org/log4j/1.2/manual.html" target="_blank"> manuel de Log4J</a>.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.milamberspace.net/index.php/2008/01/15/utilisation-de-ndc-de-apache-log4j-pour-tracer-et-suivre-lexecution-dune-application-java-58.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
