Pour cela, On commence par activer le service sur le cluster en se rendant dans le repertoire contenant le script d'init:
\>cd /usr/share/dse-demos/log_search
\>./1-add-schema.sh
Dans le projet sous eclipse, il faut ajouter les librairies suivantes au projet:- cassandra-log4j-appender-1.1.jar (que l'on trouve dans ~/dse-3.0/resources/log4j-appender/lib)
- log4j-1.2.17.jar
- jackson-all-1.9.11.jar
- dse-3.0.jar (que l'on trouve dans ~/dse-3.0/lib)
Ajouter le fichier de configuration de log4j, dans l'arborescence du projet comme ceci:
Le contenu du fichier est le suivant:
Dans le cas ou vous utilisez un serveur d'application JBoss, il faut dire à JBoss de ne pas utiliser sont propre module log4j. Pour cela, on ajoute un fichier d'exclusion dans l'arborescence projet comme ceci:
Le fichier contient le code suivant:
Ensuite il ne reste plus qu'a inserer des logs aux endroits stratégique du code de la manière suivante:
Enfin, on peux aller consulter les logs grace à l'interface de consultation mise en place dans le DSE:
http://localhost:8983/demos/log_search/
(Pour que l'interface fonctionne, il faut suivre les instructions suivantes: http://www.datastax.com/docs/datastax_enterprise3.0/solutions/log4j_logging )
Enjoy :)
Le contenu du fichier est le suivant:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false"> <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss}] %5p %c : %m%n" /> </layout> </appender> <appender name="Cassandra" class="com.datastax.logging.appender.CassandraAppender"> <param name="hosts" value="localhost" /> <param name="port" value="9160" /> <param name="appName" value="price" /> <param name="keyspaceName" value="Logging" /> <param name="columnFamily" value="log_entries" /> <param name="placementStrategy" value="org.apache.cassandra.locator.SimpleStrategy" /> <param name="replicationFactor" value="1" /> <param name="consistencyLevelWrite" value="ONE" /> <param name="maxBufferedRows" value="256" /> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="[%d{dd/MM/yy hh:mm:ss}] %5p %c{6}: %m%n" /> </layout> </appender> <logger name="it.example"> <param name="additivity" value="false" /> <level value="debug" /> <appender-ref ref="CONSOLE" /> <appender-ref ref="Cassandra" /> </logger> <root> <level value="error" /> <appender-ref ref="CONSOLE" /> <appender-ref ref="Cassandra" /> </root> </log4j:configuration>
Dans le cas ou vous utilisez un serveur d'application JBoss, il faut dire à JBoss de ne pas utiliser sont propre module log4j. Pour cela, on ajoute un fichier d'exclusion dans l'arborescence projet comme ceci:
Le fichier contient le code suivant:
<?xml version="1.0" encoding="UTF-8"?> <jboss-deployment-structure> <deployment> <!-- Exclusions allow you to prevent the server from automatically adding some dependencies --> <exclusions> <module name="org.apache.log4j" /> </exclusions> </deployment> </jboss-deployment-structure>
Ensuite il ne reste plus qu'a inserer des logs aux endroits stratégique du code de la manière suivante:
public class Dao { private static Logger mLogger = Logger.getLogger(Dao.class); private static Dao dao = null; public static Dao getInstance() { if (Dao.dao == null) Dao.dao = new Dao(); return Dao.dao; } ... public void insertImage(String imageUrl, byte[] image) { mLogger.debug("Insertion d'une image: " + imageUrl); Connection con = getConnection(); try { ...
Enfin, on peux aller consulter les logs grace à l'interface de consultation mise en place dans le DSE:
http://localhost:8983/demos/log_search/
(Pour que l'interface fonctionne, il faut suivre les instructions suivantes: http://www.datastax.com/docs/datastax_enterprise3.0/solutions/log4j_logging )
Enjoy :)
Aucun commentaire:
Enregistrer un commentaire