2011-03-16 12 views
6

Estoy implementando el registro de Python en mi aplicación, y quiero poder aprovechar la configuración raíz "predeterminada". Quiero usar la configuración raíz porque no quiero tener que definir un registrador por módulo en un archivo de configuración.Deshabilitar el registro para un paquete en particular

Cuando activo el registro de nivel de DEPURACIÓN para el registrador de raíz, me sale un problema con la API de QPID Python Client. Mis archivos de registro se inundan con las instrucciones de depuración Qpid:

2011-03-16 09: 16: 18,664 - qpid.messaging.io.ops - debug - ENVIADO [8de6b2c]: ..

2011- 03-16 09: 16: 18,667 - qpid.messaging.io.raw - DEBUG - ..

2011-03-16 09: 16: 18,668 - qpid.messaging.io.raw - DEBUG - READ [8de6b2c] : ..

2011-03-16 09: 16: 18,668 - qpid.messaging.io.ops - debug - ..

etc ..

Así que dos preguntas principales:

1) ¿Hay una manera de habilitar el registro de sólo mis módulos * sin definir un registrador por módulo? En otras palabras, ¿hay alguna manera de hacer "configuraciones de registrador" compartidas, entonces, en lugar de tener que definir una sección de registrador por registrador, ¿hay alguna manera de establecer las configuraciones por defecto?

Algo así como:

[logger_shared_settings] 
    loggers = logger_A,logger_B,logger_C,logger_D 
    level=DEBUG 

2) O ¿Cómo puedo filtrar el paquete de registro qpid a través de un archivo de configuración?

Aquí está el archivo log.conf:

[loggers] 
keys=root 

[handlers] 
keys=consoleHandler,fileHandler,nullHandler 

[formatters] 
keys=simpleFormatter 

[logger_root] 
level=DEBUG 
handlers=consoleHandler,fileHandler 

[handler_consoleHandler] 
class=StreamHandler 
level=DEBUG 
formatter=simpleFormatter 
args=(sys.stdout,) 

[handler_fileHandler] 
class=logging.handlers.RotatingFileHandler 
level=DEBUG 
formatter=simpleFormatter 
args=('out.log',) 

Aquí era lo que estaba tratando de evitar:

[loggers] 
keys=root, a, b, c, d 

[handlers] 
keys=consoleHandler,fileHandler,nullHandler 

[formatters] 
keys=simpleFormatter 

[logger_root] 
level=ERROR 
handlers=nullHandler 


[logger_a] 
level=DEBUG 
handlers=consoleHandler,fileHandler 


[logger_b] 
level=DEBUG 
handlers=consoleHandler,fileHandler 

[logger_c] 
level=DEBUG 
handlers=consoleHandler,fileHandler 

Respuesta

3

Con python2.7 puede establecer NullHandler al registrador qpid:

[logger_qpid] 
level=NOTSET 
handlers=nullHandler 
qualname=qpid 
propagate=0 
+0

Esto funciona, ¿sabes alguna forma de hacer el conjunto compartido? tings? – Nix

+0

Hmmm ... ¿qué significa "configuración compartida"? – oxyum

+0

Algo así como el registrador de raíz, pero una sección diferente que podría aplicar los módulos en mi aplicación. – Nix

Cuestiones relacionadas