Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
enseignement:aide:apis [2012/06/19 08:50]
ecoquery créée
enseignement:aide:apis [2014/11/14 14:44] (Version actuelle)
ecoquery
Ligne 1: Ligne 1:
 ====== APIs Java ====== ====== APIs Java ======
  
-Cette page regroupe des liens vers un ensemble d'APIs/bibliothèques Java qui peuvent servir lors des TPs+Cette page regroupe des liens vers un ensemble d'APIs/bibliothèques Java qui peuvent servir lors des TPs.
  
-===== log4j =====+===== APIs de log ===== 
 + 
 +Il existe un certain nombre d'API de log en Java qui sont de bonnes alternatives à ''System.out.println(...)'' quand on programme côté serveur pour surveiller / déboguer. Parmi les plus connues, on citera: 
 +  * [[http://www.slf4j.org/|slf4j]] (api) + possibilité d'utiliser les apis ci-dessous comme backend 
 +  * le package ''javax.util.logging'', fourni avec le JDK 
 +  * [[http://logback.qos.ch/|logback]] 
 +  * [[http://logging.apache.org/log4j/1.2/|log4j]], [[http://logging.apache.org/log4j/2.x/|log4j2]] 
 +  * [[http://commons.apache.org/proper/commons-logging/|commons-logging]] 
 + 
 +Ci-dessous quelques lien un guide de mise en oeuvre rapide pour slf4j+logback et pour log4j 1.2 
 + 
 +==== slf4j + logback ==== 
 + 
 +=== maven === 
 +Dépendance vers logback ([[http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22logback-classic%22|search maven]]) 
 +<code xml> 
 +<dependency> 
 +    <groupId>ch.qos.logback</groupId> 
 +    <artifactId>logback-classic</artifactId> 
 +    <version>1.1.2</version> 
 +</dependency> 
 +</code> 
 + 
 +Il y a une dépendance transitive vers slf4j. 
 + 
 +=== configuration === 
 + 
 +Mettre un fichier ''logback.xml'' dans le CLASSPATH, e.g. dans ''src/main/resources/'': 
 +<code xml logback.xml> 
 +<configuration> 
 + 
 +    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
 +        <!-- encoders are assigned the type 
 +             ch.qos.logback.classic.encoder.PatternLayoutEncoder by default --> 
 +        <encoder> 
 +            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern> 
 +        </encoder> 
 +    </appender> 
 + 
 +    <root level="INFO"> 
 +        <appender-ref ref="STDOUT" /> 
 +    </root> 
 + 
 +    <logger level="DEBUG" name="mon.paquet.a.deboguer"/> 
 +</configuration> 
 +</code> 
 + 
 +Voir la [[http://logback.qos.ch/manual/configuration.html|doc]] pour les détails 
 + 
 +=== Utilisation === 
 + 
 +<code java> 
 +... 
 +import org.slf4j.Logger; 
 +import org.slf4j.LoggerFactory; 
 +... 
 +public class Toto { 
 + 
 +  private static final Logger LOG = LoggerFactory.getLogger(Toto.class); 
 + 
 +  public int truc() { 
 + 
 +    // message de debug 
 +    LOG.debug("Coucou"); 
 + 
 +    // message d'information utilisant un template 
 +    LOG.info("Coucou {}","Titi"); 
 + 
 +    // message de warning 
 +    LOG.warn("Coucou"); 
 + 
 +    // message d'erreur 
 +    LOG.error(":-("); 
 +    // ou même 
 +    LOG.error(":-(",monException); 
 + 
 +  } 
 +   
 +
 +</code> 
 + 
 +==== log4j 1.2 ====
  
 [[http://logging.apache.org/log4j/|Page de log4j]] [[http://logging.apache.org/log4j/|Page de log4j]]
Ligne 9: Ligne 90:
 [[http://logging.apache.org/log4j/1.2/manual.html|Documentation log4j]] [[http://logging.apache.org/log4j/1.2/manual.html|Documentation log4j]]
  
-Cette bibliothèque permet de créer facilement des messages de log/debogage. 
  
-==== Mise en oeuvre rapide ====+=== Mise en oeuvre rapide ===
  
 Ajouter le fichier {{:enseignement:sw:log4j-1.2.15.jar|log4j-1.2.15.jar}} (à noter qu'il est déjà intégré dans JBoss) à votre projet. Ajouter le fichier {{:enseignement:sw:log4j-1.2.15.jar|log4j-1.2.15.jar}} (à noter qu'il est déjà intégré dans JBoss) à votre projet.
Ligne 62: Ligne 142:
 </code> </code>
  
-==== Intégration via maven ====+=== Intégration via maven ===
  
 Ajouter la dépendance suivante à votre projet Maven: Ajouter la dépendance suivante à votre projet Maven:
Ligne 74: Ligne 154:
  
 Le fichier log4j.properties est à placer dans le répertoire ''src/main/resources'' et non pas le le répertoire ''src/main/java'' Le fichier log4j.properties est à placer dans le répertoire ''src/main/resources'' et non pas le le répertoire ''src/main/java''
- 
-==== Autres APIs de log ==== 
- 
-  * Java fourni une API de log avec le J2SE: ''javax.util.logging'' 
-  * [[http://www.slf4j.org/|SLF4J]] est une API qui vise à simplifier et à abstraire les différentes API de log. 
  
 ===== JUnit ===== ===== JUnit =====
Ligne 137: Ligne 212:
 ==== Tomcat ==== ==== Tomcat ====
  
-Voir [[http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html|Le HOWTO de la doc Tomcat 5.5]]+Voir [[http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html|Le HOWTO de la doc Tomcat 7.0]]
  
 Ne pas hésiter à mettre la config dans le ''GlobalNamingResources'' (voir la fin du howto).  Ne pas hésiter à mettre la config dans le ''GlobalNamingResources'' (voir la fin du howto). 
  
 +Pour les tomcats exécutés via ''mvn tomcat:run'', il est possible de spécifier un fichier de contexte dans le pom: [[http://tomcat.apache.org/maven-plugin-2.1/run-mojo-features.html|voir la doc du plugin]]
  
 ===== Hibernate ===== ===== Hibernate =====