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 !