IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Envoyer des messages syslog


Sujet :

C++

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Par défaut Envoyer des messages syslog
    Bonjour je suis actuellement sur un projet en c/c++ et je besoin que mes applications envoient des messages syslog pour pouvoir être récupérés grâce à un démon syslog.

    Je trouvé une bibliothèque qui s'appelle "syslog.h" mais je ne sais pas comment m'en servir pour que je puisse envoyer les syslog sur une autre machine.

    Merci d'avance pour votre aide. Bonne journée

  2. #2
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    syslog, c'est une spécificité des systèmes unixoïdes, et ça demande de modifier des fichiers de configuration.

    Tu auras de meilleurs résultats dans le forum Linux (demande à un modo de déplacer le thread)...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre éclairé
    Avatar de Floréal
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    456
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 456
    Par défaut
    Si ma mémoire est bonne, ce n'est pas dans ton appli que tu dis que tel syslog va dans tel fichier ou telle machine mais dans la configuration même de syslog (sous le répertoire /etc, en général). En effet si jamais la machine que tu pointe est remplacée ou tombe en panne, il te faudrait retravailler le code de ton appli pour pouvoir changer cette config. Après pour savoir comment utiliser la bibliothèque (fonction, types et compagnie), il doit y avoir une doc, sinon par hasard je suis tombé sur log4cxx, il y a quelque temps, je ne sais pas ce qu'elle vaut comme librairie, mais il me semble qu'on retrouve le même genre d'objet que dans log4j.

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 271
    Par défaut
    Un petit exemple de code en C :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #include <syslog.h>
     
    char *log = "TEST SYSLOG";
     
    int main (int argc, char *argv[])
    {
      openlog(log,LOG_PID,LOG_USER);
      syslog(LOG_INFO, "hello world");
      closelog();
      return 0;
    }

    Les macros LOG_PID, LOG_USER, LOG_INFO sont décrites dans le man de syslog.h .
    Il y en a d'autres utilisables.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Par défaut
    ok merci mais je fait comment pour les envoyer vers un démon syslog maintenant ?

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    271
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 271
    Par défaut
    Il faut configurer /etc/syslog.conf (ce n'est plus du domaine du C/C++) pour que le demon syslogd envoie sur le réseau.

    C'est expliqué dans le man syslog.conf

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Par défaut
    le problème est que je voudrai faire tourner mes applications sous Windows et non sous linux et je croix que syslog.h ne soit pas intégré à Windows

  8. #8
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    RIEN de syslog n'existe sous Windows. Ni syslog.h, ni le démon syslogd, rien.

    Sous Windows, on utilise l'EventLog, qui est encore plus compliqué à utiliser (il faut des entrées dans la base de registre ainsi qu'un fichier compilé et intégré à une DLL ou un EXE...)
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 5
    Par défaut
    je comprend bien mais je voulais implémenter un API tel log4cxx afin que mes applications puissent envoyer des syslogs de façon native.

    Comment utiliser log4cxx

  10. #10
    Futur Membre du Club
    Inscrit en
    Juin 2008
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 5
    Par défaut
    bien que le thread date un peu...

    le plus simple semble en effet d'utiliser log4cxx (http://logging.apache.org/log4cxx/),
    et d'ajouter un "l'appender syslog" (dans le fichier de config de log4cxx), soit qqch du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <appender name="SYSLOG" class="org.apache.log4j.SyslogAppender">
            <param name="Threshold" value="WARN" />
            <param name="SysLogHost" value="localhost" />
            <param name="Facility" value="DAEMON" />
            <layout class="org.apache.log4j.PatternLayout">
                       <param name="ConversionPattern"
                                  value="%-4r %-5p %c %x - %m" />
            </layout>
            <filter class="LevelRangeFilter">
                      <param name="AcceptOnMatch" value="true"/>
                      <param name="LevelMin" value="WARN" />
                       <param name="LevelMax" value="FATAL" />
            </filter>
    </appender>
    (honteusement pompé sur le ng de log4cxx; sujet à modification selon les versions de log4cxx)

Discussions similaires

  1. formulaire pour envoyer des messages.
    Par cyrilmarc dans le forum Langage
    Réponses: 2
    Dernier message: 22/11/2006, 21h15
  2. [Mail] Codage d'une page pour envoyer des messages.
    Par cyrilmarc dans le forum Langage
    Réponses: 5
    Dernier message: 21/11/2006, 21h53
  3. Envoyer des messages à d'autres postes en réseau
    Par Wilco dans le forum Bases de données
    Réponses: 1
    Dernier message: 06/07/2005, 12h32
  4. Réponses: 4
    Dernier message: 28/03/2005, 19h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo