2011-11-01 5 views
5

Estoy planeando agregar un mecanismo de registro en mi python & servicio web geodjango. ¿Hay un log4j similar a un mecanismo de registro en python/geodjango?¿cuál es el mecanismo de registro de python (2.5.2)? ¿Hay log4j en una biblioteca similar o en una clase estándar de python/geodjango?

Estoy buscando log4j's dailyrollingfileappender equivalent. A continuación, elimine automáticamente todos los archivos de registro antiguos de un mes.

Cualquier orientación es apreciada.

ACTUALIZACIONES1 Estoy pensando en el siguiente formato.

datetime(ms)|log level|current thread name|client ip address|logged username|source file|source file line number|log message 

Respuesta

3

Sí - Python 2.5 incluye el módulo 'logging'. Uno de los controladores que admite es handlers.TimedRotatingFileHandler, esto es lo que está buscando. 'Registro' es muy fácil de usar:

ejemplo:

import logging 
import logging.config 

logging.fileConfig('mylog.conf') 
logger = logging.getLogger('root') 

El siguiente es el archivo de configuración para el registro de

#====================== 

# mylog.conf 
[loggers] 
keys=root 

[handlers] 
keys=default 

[formatters] 
keys=default 

[logger_root] 
level=INFO 
handlers=default 
qualname=(root) # note - this is used in non-root loggers 
propagate=1 # note - this is used in non-root loggers 
channel= 
parent= 

[handler_default] 
class=handlers.TimedRotatingFileHandler 
level=INFO 
formatter=default 
args=('try.log', 'd', 1) 

[formatter_default] 
format=%(asctime)s %(pathname)s(%(lineno)d): %(levelname)s %(message)s 
+0

'registro de importación ... registrador = logging.getLogger ('root ') '¿Es necesario incluir todos los archivos py para usar el sistema de registro? – eros

+0

¿dónde debo poner mylog.conf? es el nombre del archivo puede ser cambiado? como mylog.py? – eros

+0

'args = ('try.log', 'd', 1)' -> 1 es backupCount? 1 significa que se mantendrá un archivo (más el archivo de registro actual try.log)? – eros

Cuestiones relacionadas