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

Réseau/Web Python Discussion :

Utilisation de rsyslog via Logging.


Sujet :

Réseau/Web Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 19
    Points : 14
    Points
    14
    Par défaut Utilisation de rsyslog via Logging.
    Salut tout le monde ;-)
    Je suis en train d'essayer de mettre en place des scripts de gestions sur mon serveur, et pour cela, j'avais pensé utiliser rsyslog pour mettre en place un processus de suivi et de gestion des logs corrects.

    Le problème, c'est que tous les messages de logs que j'envois depuis mon application son de facilité “user”, même quand je défini la variable “facility“ dans le constructeur de “SysLogHandler“…

    La gestion des logs s'effectue via le fichier /etc/rsyslog.conf minimaliste présent ici :
    http://pastebin.com/BpFgdfzL

    La partie importante du fichier est le contenu des règles que je mes en place. À savoir les dernières lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    *.*				-/var/log/test/all.log
    local0.*			-/var/log/test/local0.log
    mail.*				-/var/log/test/mail.log
    user.*				-/var/log/test/user.log
    Ensuite, voici mon application python de test :
    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
    16
    17
    18
    19
    20
    21
    22
     
    #!/usr/bin/python3
     
    import logging
    import logging.handlers
     
    logger = logging.getLogger("Test syslog")
    logger.setLevel(logging.DEBUG)
     
    sysl = logging.handlers.SysLogHandler(facility=logging.handlers.SysLogHandler.LOG_LOCAL0)
    sysl.setLevel(logging.DEBUG)
     
    ch = logging.StreamHandler()
    ch.setLevel(logging.DEBUG)
     
    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
    sysl.setFormatter(formatter)
    ch.setFormatter(formatter)
     
    logger.addHandler(sysl)
    logger.addHandler(ch)
    logger.error("Un petit test :-)")
    On voit donc, d'après la ligne 10 que la facilité du message devrait être local0, et que donc, celui-ci devrait être écris dans le fichier all.log et local0.log. Malheureusement, c'est le fichier user.log qui remplace local0.log… D'où ma déduction qu'un problème de « compréhension » doit avoir lieu entre rsyslog et la bibliothèque logging de phyton

    Le message de log qu'on retrouve dans les fichiers all.log et user.log est de cette forme :
    May 28 17:42:47 localhost <131>2012-05-28 17:42:47,401 - Test syslog - ERROR - Un petit test :-)
    De même, j'ai remarqué que si je change la facilité par “LOG_USER“, j'obtiens le message suivant :
    May 28 17:58:56 localhost <11>2012-05-28 17:58:56,615 - Test syslog - ERROR - Un petit test :-)
    Et enfin, avec “LOG_MAIL“ :
    May 28 17:59:48 localhost <19>2012-05-28 17:59:48,304 - Test syslog - ERROR - Un petit test :-)
    On voit que la seule différence est le numéro entre chevrons. Tout ces messages de logs sont traité comme étant de facilité “user“, mais Logging envois bien des informations différentes à rsyslog ce qui renforce encore plus mon impression qu'une erreur de configuration doit avoir lieux.

    Si vous avez une idée, n'hésitez pas !

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Danemark

    Informations forums :
    Inscription : Mai 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Hello Spydemon,


    J'ai bien lu ton post et j'ai rencontré un problème similaire avec ma config il n'y a pas longtemps.

    Je pense que ton problème vient bel et bien de la « compréhension » comme tu dit qui doit avoir lieu entre rsyslog et la bibliothèque logging de phyton.

    Pour résoudre le problème, j'avais dans ce cas la utilisé une routine ESSP. As-tu deja essayé le language XP2A qui pourrait resoudre ton probleme
    car il utilise une routine ESSP qui reprend les lignes /slog deffectueuses

    exemple ta ligne 10 :
    "sys =logging.handlers.SysLogHandler(facility=logging.handlers.SysLogHandler.LOG_LOCAL0)"

    Le message de log que tu retrouve dans les fichiers all.log et user.log est surement dûe au fait que les chevrons sont dirrigé vers une autre facilité :

    Tient moi au courant si cela résoud ton soucis!

    @+

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    Salut

    Tout d'abord, merci pour ta réponse !

    Par contre, je ne vois pas du tout ce que pourrait être les routines ESSP, ni même ce qu'est le langage XP2A. J'ai chercher sur Google, mais même lui ne semble pas connaitre. :-/
    Plutôt étrange, je te l'accorde…
    Si tu as un lien quelque part qui explique un peu ce que c'est, je te serais reconnaissant de m'en faire part.

    Merci d'avance.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 19
    Points : 14
    Points
    14
    Par défaut
    Bon bin finalement j'ai fais ça autrement, en passant par la bibliothèque syslog au lieu de logging.

    Ça fonctionne plutôt bien avec cette méthode

    Voici la documentation du module : http://docs.python.org/library/syslog.html

    À la prochaine !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. L'utilisation de OpenSchema via ADO en Delphi
    Par Delphi-ne dans le forum Bases de données
    Réponses: 4
    Dernier message: 09/08/2006, 08h59
  2. utiliser sql server via c/c++ ?
    Par ilive dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 06/07/2006, 11h10
  3. []Controle pendant l'utilisation de Outlook via VB
    Par Delphi-ne dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 23/09/2005, 11h11
  4. [MFC] Faible utilisation des sockets via les MFC ?
    Par Yellowmat dans le forum MFC
    Réponses: 1
    Dernier message: 25/08/2005, 17h15
  5. utilisation d'un fichier log
    Par portu dans le forum Windows
    Réponses: 3
    Dernier message: 16/09/2004, 10h34

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