Estoy usando el registro de Python en mi aplicación django. Una clase que se conecta a una API de back-end inicializa este registrador con un manejador de archivos si es necesario. La clase se instancia cada vez que se realiza una llamada de API. He tratado de asegurarse de que los controladores adicionales no se agregan cada vez, peroRegistro apropiado de Python con manejadores de archivos
lsof | grep my.log
muestra una cantidad cada vez mayor de los manipuladores en mi archivo de registro y después de un tiempo mi servidor falla debido a este límite de archivos abiertos.
self.logger = logging.getLogger("FPA")
try:
if self.logger.handlers[0].__class__.__name__=="FileHandler":
pass
except Exception, e:
print 'new filehandler added'+str(e)
ch = logging.FileHandler(FPA_LOG_TARGET)
formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(message)s - %(pathname)s @ line %(lineno)d")
ch.setFormatter(formatter)
self.logger.setLevel(logging.DEBUG)
self.logger.addHandler(ch)
Me doy cuenta de que esta puede no ser la mejor manera de hacerlo, pero hasta ahora no he encontrado el error en mi implementación.
¿Cuál es exactamente su pregunta? –
¿qué es lo que imprime '' imprimir 'nuevo manejador de archivos' + str (e) '' en su declaración de registro? –
Mi pregunta es: ¿qué estoy haciendo mal? – pyeleven