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 :
Ensuite, voici mon application python de test :
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
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
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 :-)")
Le message de log qu'on retrouve dans les fichiers all.log et user.log est de cette forme :
De même, j'ai remarqué que si je change la facilité par “LOG_USER“, j'obtiens le message suivant :May 28 17:42:47 localhost <131>2012-05-28 17:42:47,401 - Test syslog - ERROR - Un petit test :-)
Et enfin, avec “LOG_MAIL“ :May 28 17:58:56 localhost <11>2012-05-28 17:58:56,615 - 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.May 28 17:59:48 localhost <19>2012-05-28 17:59:48,304 - Test syslog - ERROR - Un petit test :-)
Si vous avez une idée, n'hésitez pas !
Partager