2010-05-05 12 views
6

estoy usando el módulo de registro de Python con el apoyo fichero de configuración "nativo" (config.fileconfig) como se describe en la documentación aquí:tabulada formato de archivo de registro con el sistema de registro de pitón

http://docs.python.org/library/logging.html (ver el registro archivo .conf)

Me preguntaba si es posible proporcionar un formato de datos tabulados en el archivo de configuración.

El archivo de configuración de ejemplo es la siguiente:
[formatter_simpleFormatter]
formato =% (asctime) s -% (nombre) s -% (levelname) s -% (mensaje) s

I aunque que usar el \ t en el formato sería suficiente pero no es así.
formato =% (asctime) s \ t% (name) s \ t% (levelname) s \ t% (mensaje) s \ t

Si yo lo que imprimo \ t en el resultado. Intenté un par de cosas sin éxito. ¡Supongo que es realmente fácil de hacer, pero no lo encuentro!

¿Cómo puedo hacer eso?

Respuesta

4

¿Ha intentado ingresar un carácter de tabulación literal en el archivo de configuración en lugar de \t? Esto funciona para mí

+0

¡Tan simple que no lo probé! Me avergüenza. Gracias – yorjo

+6

Esto solo funcionará hasta que alguien que tiene configuración en su IDE para convertir pestañas en espacios se abra y guarde su archivo. –

10

Lo siento por llegar tarde a la fiesta, pero la información podría ser útil para otros también ...

también quería un registro en busca tabulados, sobre todo en el campo "levelname"

mi formato fue con este aspecto

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

que hizo registros de un aspecto algo como esto

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..... 

mi solución era cambiar el formato como éste

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

que resultó mis registros en algo como esto

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..... 

El "8" es la longitud de la cadena más larga que se espera allí, en este caso "CRÍTICO". El "-" indica a la derecha de la almohadilla de la cadena

nota lateral: hacer

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

es la salida

-abcd- 

... la cadena no recibe truncada

+0

¡Finalmente, no pude hacerlo aquí! – holms

+1

% (lineno) 04d lineno es el número de línea desde donde la llamada para iniciar la sesión se hace 04d formato simple para asegurar cuatro lugares numéricos con ceros a la izquierda 4s almohadillas de la cadena con espacios a la izquierda, a la derecha justificar -4s Pads la cuerda con espacios al final, justify just –

+0

¡Eso es perfecto! Gracias. – black

Cuestiones relacionadas