Le Touilleur Express

  • Accueil
  • A propos de l’auteur
  • A propos du Touilleur Express
Next Previous

Envoyer des messages vers Twitter avec Log4J

26 avril, 2009

Petit délire de ce week-end : coder un Appender pour Log4J afin de publier vers votre compte Twitter des messages de log4j. Bref quelques heures plus tard, le temps de faire un projet propre, je vous ai mis le tout en ligne il y a quelques minutes. Vous trouverez en anglais des explications complètes sur la page dédiée, le code source, les ressources et un exemple d’utilisation.

Le principe est simple : après avoir configuré un nouvel appender, puis un logger générique, vous pouvez alors envoyer des messages de log4j avec du code classique de votre application:

        // The TWITTER Loger is defined in the Log4j.xml
        Logger twitterLogger=Logger.getLogger("TWITTER");

        // This message won't be published cause we configured
        // the appender to ERROR Level
        twitterLogger.debug("This message should not be published");

        // This message will be published
        // Using standard Twitter syntax, you'll send me
        // a small helloWorld !
        twitterLogger.error("Hello @Letouilleur ! it works !");

Vous devez simplement configurer un appender « TwitterAppender » soit dans votre fichier log4j.xml, soit dans un fichier log4j.properties ou directement en Java.

Dans cet exemple, nous configurons un appender avec un compte Twitter valide et un mot de passe :

log4j.xml :


<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "/Users/nicolas/Dev/TwitterAppender/src/test/resources/configuration/log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"
                     debug="true">
...
...
    <appender name="TWITTER_APPENDER" class="com.letouilleur.express.TwitterAppender">
        <!-- true or false, I recommend true to avoid locking your app while we publish to twitter-->
        <param name="useAsynchronous" value="true"/>
        <!-- Set here a valid twitter userId screename that we will use to authenticate -->
        <param name="screenId" value="YOUR TWITTER USERID HERE"/>
        <!-- Set here its password -->
        <param name="screenPassword" value="YOUR TWITTER PASSWORD HERE"/>
        <!-- If you want to test and you do not want to really publish messages, set this to true -->
        <param name="fakePublishing" value="false"/>

    </appender>

Nous configurons ensuite un logger « TWITTER. A noter que le nom n’a aucuns importances, vous pouvez même ajouter une référence à l’appender TwitterAppender à des loggers existants dans votre application, et la rendre ainsi capable de « twitter » !

    <!-- Configure a TWITTER logger that will be use from my sample class TwitterAppenderTestLog4jXML -->
    <!-- Any message with level ERROR that is send to Logger "TWITTER" will be published -->
    <logger name="TWITTER">
        <level value="ERROR"/>
        <appender-ref ref="TWITTER_APPENDER"/>
    </logger>

...
... // other configuration params...
...
</log4j:configuration>

Et à quoi cela sert-il ?
Ce système permet à votre application de publier son status. L’idée que j’ai serait de créer un compte dédié pour votre application. Appelons par exemple « primeweb » ce compte Twitter. Nous pourrions alors imaginer que notre système publie son status sur sa page Twitter. A 06h00 du matin « primeweb » génère des rapports financiers. Il pourrait ainsi annoncer fièrement « 345 rapports générés, aucunes erreurs signalées » par exemple…

J’imagine aussi qu’en retour nous pourrions répondre et twitter avec notre compte robot. Je pourrai par exemple envoyer un message direct à « primeweb » en écrivant « Salut mon gars, tu peux #relancer_batch_asie_as_of_20090404 stp ? merci et ensuite #notifier_Letouilleur_si_erreurs ». Bref un système simple pour discuter avec votre logiciel…

Je suis certain que ce bon vieux primeweb rêve de twitter comme un fou et de nous raconter tout ce qu’il fait. Primeweb c’est le projet sur lequel je travaille en ce moment à la GrandeBanqueFrançaiseQueJePeuxPasCiter…

Rendez-vous sur la page « TwitterAppender » pour tester.

Le code est en license BSD, libre, avec les sources.
J’utilise l’excellente API Twitter4J pour envoyer mes twits.

0 no like

Articles similaires:

Default ThumbnailAdieu System.out.println, vive Log4J Default ThumbnailLog4J et log4j.xml Default ThumbnailLog4J and ANSI colors in a xterm Default ThumbnailLog4J etait capable de recharger un fichier de conf XML automatiquement
  • cgrand 27 avril 2009 at 8 h 35 min

    Intéressant. Pour ce genre de choses il m’est déjà arrivé d’utiliser la messagerie instantanée (XMPP via Smack).

Derniers articles

  • L’instant T où tu poses ta dém…

    Retour d’expérience sur la démission et le moment où vous devez quitter une entreprise.

    6 likes

    24 octobre, 2024
  • The « Robinson » projection – comprendre son système d’information

    Nous sommes en juillet 2022 chez Doctolib. Je travaille sur un projet

    5 likes

    22 octobre, 2024
  • Réussir son démarrage comme Staff/Principal Engineer dans une nouvelle entreprise

    Je prépare une présentation avec mon collègue Théotime pour la conférence Cloud

    3 likes

    6 octobre, 2024

Mots clés

Apple (32) Architecture (14) Big Data (5) Conference (8) Devoxx (55) Dev Web (37) Doctolib (2) geekevent (1) groovy (2) Innoteria (11) Java (517) Linux (10) Non classé (15) Perso (266) Recrutement (2) Scala (30) scrum (43) Société (3) Staff Engineer (5) Startup (21) Web 2.0 (67)

Le Touilleur Express

Blog par Nicolas Martignole

Contactez-moi : nicolas@touilleur-express.fr

Suivez-moi sur X (Twitter) : @nmartignole

Copyright© 2008 - 2024 Nicolas Martignole | Tous droits réservés
  • A propos de l’auteur
  • A propos du Touilleur Express
  • Reset Password

Le Touilleur Express