2010-08-16 16 views
8

Tengo 3 procesos ejecutándose bajo mi reactor trenzado: en órbita, WSGI (ejecutando django) y Twisted.Registro retorcido

Actualmente estoy usando

log.startLogging(sys.stdout) 

Cuando todo el registro se dirigen al mismo lugar, hay demasiada inundaciones.

Una línea de mi registro de WSGI es así:

2010-08-16 02:21:12-0500 [-] 127.0.0.1 - - [16/Aug/2010:07:21:11 +0000] "GET /statics/js/monitor_rooms.js HTTP/1.1" 304 - "http://localhost:11111/chat/monitor_rooms" "Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8" 

El tiempo se repite dos veces, básicamente. Creo que debería usar mi propio formateador pero lamentablemente no puedo encontrar en documentos de trenzado (no hay nada en el registro existe)

  1. ¿Cuál es la mejor manera de hacer frente a la tala de 3 fuentes?
  2. ¿Qué kwargs paso en qué función en twisted.log para configurar mi propio formateador (startLogging no contiene la respuesta)
  3. ¿Cuál es una solución mejor que la que he sugerido? (No tengo mucha experiencia en configurar registradores).

Respuesta

1

Heh. Estoy pensando exactamente en este problema. Lo que se me ocurrió es una aplicación Twisted separada que registra los mensajes que recibe en un socket. Puede configurar el registro de Python para enviarlo a un socket y puede configurar el registro de Twisted para enviarlo al registro de Python. De modo que puede obtener todo para enviar mensajes de registro a un único proceso (que luego utiliza el registro de Python para registrarlos en el disco).

que tienen alguna prueba inicial de concepto en http://www.acooke.org/cute/APythonLog0.html

Lo más importante que falta es que sería bueno para indicar qué mensaje vino de la fuente. No estoy seguro de cuál es la mejor manera de agregar eso aún (un enfoque sería ejecutar el servicio en tres puertos diferentes y tener un prefijo diferente para cada uno).

PD ¿Cómo funciona el Orbited? Eso está en mi lista siguiente ...

11

Puede usar el argumento de palabra clave system en twisted.python.log.msg para personalizar el mensaje.

Suponiendo que tenemos:

salida
log.msg("Service ready for eBusiness!", system="enterprise") 

Usted obtendrá el registro de esta manera:

2010-08-16 02:21:12-0500 [enterprise] Service ready for eBusiness! 

A continuación, podría tener cada uno de sus servicios system="wsgi/orbited/..." añadir a sus log.msg y log.err llamadas.

Encontré this hurgando en la fuente la última vez que trabajé con Twisted.

Cuestiones relacionadas