2010-03-22 11 views
22

Tengo un proyecto en el que estoy usando Twisted para mi servidor web. Cuando ocurren excepciones (como errores de red), se imprime en la consola.¿Cómo hacer retorcido el uso de registro de Python?

Ya he iniciado sesión en el módulo de registro integrado de Python. ¿Hay alguna forma de decirle al reactor que use eso?

¿Cuál es el patrón habitual para esto?

Respuesta

23

Lo encontraste. En realidad es bastante fácil:

from twisted.python import log 
observer = log.PythonLoggingObserver(loggerName='logname') 
observer.start() 

Usted acaba de establecer loggerName al mismo nombre registrador que está utilizando en logging.getLogger().

+2

Tenga en cuenta que no es necesario utilizar el mismo loggerName. Usar uno diferente puede ayudar a distinguir de dónde provienen los mensajes de registro y equivale a usar diferentes registradores en diferentes partes de su aplicación. –

+0

Esa es una buena idea. Lo que también ayuda es que incluyo el nombre del hilo en el formato del mensaje de registro. Eso ayuda a determinar de dónde provienen los registros. – Dave

+1

Solo para su información, el módulo de registro de Python puede bloquear y retorcer no espera eso. La mejor manera es escribir el controlador de cliente en python, que las llamadas envían eventos a retorcidos. De esta forma, puede configurar el registro de bloqueo de Python en uno sin bloqueo –

0

Puede usar twisted.python.log. Por ejemplo:

from twisted.python import log 
log.msg('Hello, world.') 
+1

Esto funciona, pero solo para sus propios mensajes de registro, no los generados por twisted y sus módulos. – fiorix

Cuestiones relacionadas