Le Touilleur ExpressLe Touilleur ExpressLe Touilleur ExpressLe Touilleur Express
  • Accueil
  • A propos de l’auteur
  • A propos du Touilleur Express

Envoyer des messages vers Twitter avec Log4J

    Home Java Envoyer des messages vers Twitter avec Log4J

    Envoyer des messages vers Twitter avec Log4J

    Par Nicolas Martignole | Java | 1 commentaire | 26 avril, 2009 | 0 | 1 050 affichages
         

    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.

    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
    twitter
    • Avatar
      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).

    Recent Posts

    • GitHub Actions : le tueur de Jenkins ?

      Avouez-le : ce titre de blog est super racoleur. J’avais aussi pensé

      15 février, 2021
    • Comment recréer du lien social dans l’Entreprise avec des outils numériques en 2021

      Nous sommes en février 2021 pendant le 3ème confinement lié à la

      10 février, 2021
    • FizzBuzz en Java et Scala (surtout Scala)

      L’exercice FizzBuzz est un petit exercice très simple, à tester par exemple

      9 février, 2021

    Recent Tweets

    •  @steeve  Agree. Those conversations remind me the old Paris Java User Group beer talks we had after each event cc  @mfiguiere   @DidierGirard 

      1 day ago
    • RT  @_yom_ : Allez Twitter sois sympa et passe le mot autour de toi : on cherche toujours la perle rare qui voudra bien donner de l'amour aux…

      1 day ago
    •  @dorianmariefr  Ben ce sont les chiffres officiels (je fais ma DA cette semaine) 😉

      2 days ago
    • Doctolib c’est 1580 personnes dont 350 personnes « Produits/Tech » (chiffre officiel jan 2021)

      2 days ago
    •  @rophilogene  Par exemple Doctolib Médecin c’est un outil SaaS très simple qui remplace les vieux logiciels installé… https://t.co/selHtXAi8s

      2 days ago

    Mots clés

    agile (18) ajax (11) Apple (11) architecture (6) barcamp (5) BarCampJavaParis (5) ddd (5) devoxx (33) esb (6) exo (6) flex (9) geek (5) google (11) grails (5) groovy (10) humeur (12) humour (7) independant (6) iphone (12) Java (77) javascript (7) jazoon (28) jboss (22) jboss seam (12) jsf (9) jug (16) Linux (11) mac (6) mule (5) parisjug (7) paris jug (22) pjug (6) play (8) playframework (6) portlet (5) recrutement (6) ria (8) Scala (21) scrum (44) spring (23) Startup (11) usi (21) usi2010 (9) web (16) xebia (7)

    Le Touilleur Express

    Contactez-moi : nicolas@touilleur-express.fr

    Suivez-moi sur Twitter : @nmartignole

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