2010-05-05 2 views
6

J'utilise le module d'enregistrement python avec le « natif » support de fichier de configuration (de config.fileconfig) comme décrit dans la documentation ici:tabulée format de fichier journal avec le système d'enregistrement python

http://docs.python.org/library/logging.html (voir l'exploitation forestière fichier .conf)

Je me demandais s'il était possible de fournir un format de données tabulé dans le fichier de configuration?

Le fichier de configuration de l'échantillon est la suivante:
[formatter_simpleFormatter]
format =% (asctime) s -% (nom) s -% (levelName) s -% (message) s

Je croyais que qu'utiliser le \ t dans le format serait suffisant mais ce n'est pas le cas.
format =% (asctime) s \ t% (nom) s \ t% (levelName) s \ t% (message) s \ t

Si je le fais, il imprime \ t dans le résultat. J'ai essayé quelques trucs sans succès. Je suppose que c'est vraiment facile à faire mais je ne le trouve pas!

Comment puis-je faire cela?

Répondre

4

Avez-vous essayé d'entrer un caractère de tabulation littéral dans le fichier de configuration au lieu de \t? Cela fonctionne pour moi.

+0

Si simple que je ne l'ai pas essayé! Honte sur moi. Merci – yorjo

+6

Cela ne fonctionnera que jusqu'à ce que quelqu'un qui a configuré dans leur IDE pour convertir les onglets en espaces ouvrira et sauvegardera votre fichier. –

10

Désolé pour arriver en retard à la fête, mais l'information pourrait être utile pour les autres aussi ...

Je voulais aussi une recherche sous forme de tableau journal, en particulier le « levelName » champ

ma forme ressemblait à ce

format = %(asctime)s - %(levelname)s - %(name)s - %(message)s 

qui a fait mes journaux ressemblent à ceci

2014-10-01 17:42:54,261 - INFO - internal..... 
2014-10-01 17:43:09,700 - DEBUG - internal..... 
2014-10-01 17:44:02,994 - WARNING - internal..... 
2014-10-01 17:44:31,686 - CRTITICAL - internal..... 

ma solution était de changer le format comme celui-ci

format = %(asctime)s - %(levelname)-8s - %(name)s - %(message)s 

qui se mes journaux dans quelque chose comme ça

2014-10-01 17:42:54,261 - INFO  - internal..... 
2014-10-01 17:43:09,700 - DEBUG  - internal..... 
2014-10-01 17:44:02,994 - WARNING - internal..... 
2014-10-01 17:44:31,686 - CRTITICAL - internal..... 

Le « 8 » est la longueur de la plus longue chaîne qui est prévu là, ce cas "CRITIQUE". Le "-" indique à jambière droite la chaîne

côté note: faire

print "-%3s-" % "abcd" 

volonté sortie

-abcd- 

... la chaîne n'obtient pas tronquée

+0

Enfin, je ne pourrais pas cela n'importe où !! – holms

+1

% (lineno) 04D lineno est le numéro de la ligne d'où l'appel à se connecter est fait 04D mise en forme simple pour assurer quatre places numériques avec des zéros à gauche 4s PADS la chaîne avec des espaces plus grands, justifier à droite -4S Pads la chaîne avec des espaces de fin, justifient à gauche –

+0

C'est perfekt! Je vous remercie. – black

Questions connexes